유니코드환경에서는 한번에 변환이 안돼서 함수 만들어서 쓰는게 속 편한것 같다.
CString -> char *
CString strLog = _T("");
wchar_t* wchar_str;
char* char_str;
int char_str_len;
wchar_str = strLog.GetBuffer(strLog.GetLength());
char_str_len = WideCharToMultiByte(CP_ACP, 0, wchar_str, -1, NULL, 0, NULL, NULL);
char_str = new char[char_str_len];
WideCharToMultiByte(CP_ACP, 0, wchar_str, -1, char_str, char_str_len, 0, 0);
return char_str;
char * -> CString
char* strName = reinterpret_cast<char*>(wParam);
int len = MultiByteToWideChar(CP_ACP, 0, strName, strlen(strName), NULL, NULL);
BSTR buf = SysAllocStringLen(NULL, len);
MultiByteToWideChar(CP_ACP, 0, strName, strlen(strName), buf, len);
CString str;
str.Format(_T("%s"), buf);
return str;
'C++ > 이게 왜 돼 ❔❔❔' 카테고리의 다른 글
[MFC] WPARAM, LPARAM 값(float, double) 넘기기 (3) | 2023.05.02 |
---|---|
[MFC] 다른 클래스에서 다이얼로그의 컨트롤 사용하기 ( 순환참조 피하기 ) (0) | 2022.03.24 |
[C++] 간단하게 코드 속도 측정 (0) | 2022.02.23 |
[C++] 현재(시스템) 시간, 날짜 구하기 (0) | 2022.02.23 |
[MFC] 파일 선택 다이얼로그 띄우기 (0) | 2022.02.12 |
댓글