Unicode 개발 환경에서, CString과 char* 간의 형변환은 지극히 귀찮은 일이다.
특히 console이 아닌 윈도우 UI기반으로 프로그램을 작성할 때, CFileDialog를
통해 파일이름 및 경로를 획득하고, 이를 이용하여 fopen (사실 다른 입출력
함수 (e.g., CreateFile을 쓰면 해결됨)) 등의 ANSI-C기반의 파일 입출력 함수에
활용하는 경우 위와 같은 형변환이 요구된다.
통해 파일이름 및 경로를 획득하고, 이를 이용하여 fopen (사실 다른 입출력
함수 (e.g., CreateFile을 쓰면 해결됨)) 등의 ANSI-C기반의 파일 입출력 함수에
활용하는 경우 위와 같은 형변환이 요구된다.
Google등으로 검색해보면 많은 방법들이 제시되는데, 그중에서 실제로
정확하게 동작한 것을 남겨둔다. 나중을 위해...
Unicode 환경에서 CString --> char* 형변환은 두 단계로 이루어 진다.
1. CString to wchar_t* 간의 형변환
2. wchar_t* to char* 간의 형변환
CString str; //형변환할 문자열이 저장된 CString 변수 wchar_t* wchar_str; //첫번째 단계(CString to wchar_t*)를 위한 변수 char* char_str; //char* 형의 변수 int char_str_len; //char* 형 변수의 길이를 위한 변수 //1. CString to wchar_t* conversion wchar_str = str.GetBuffer(str.GetLength()); //2. wchar_t* to char* conversion //char* 형에 대한길이를 구함 char_str_len = WideCharToMultiByte(CP_ACP, 0, wchar_str, -1, NULL, 0, NULL, NULL); char_str = new char[char_str_len]; //메모리 할당 //wchar_t* to char* conversion WideCharToMultiByte(CP_ACP, 0, wchar_str, -1, char_str, char_str_len, 0,0);
원문 글 주소 : http://picomo.blogspot.kr/2012/03/mfc-unicode-cstring-to-char.html
'Programming Language > MFC' 카테고리의 다른 글
| MFC + mySQL 사용시 기본 환경설정법 (0) | 2012.10.03 |
|---|