C, C++/잡기장 | Notebook

[MFC] CString <-> char* 변환 (Unicode Character Set)

SEO HOB 2019. 11. 25. 14:50

1. char* -> CString (in Unicode Charater Set)

CString ConvertCharAstToCString(char* strInput)

{

// ## char* -> wchar_t -> CString ##


wchar_t* strWCHAR;

CString strOutput;

int iLength;

iLength = MultiByteToWideChar(CP_ACP, 0, strInput, strlen(strInput), NULL, NULL);

strWCHAR = SysAllocStringLen(NULL, iLength);

MultiByteToWideChar(CP_ACP, 0, strInput, strlen(strInput), strWCHAR, iLength);


strOutput.Format(_T("%s"), strWCHAR);


return strOutput;

}


2. CString -> char* (in Unicode Character Set)

char* ConvertCStringToCharAst(CString strInput)

{

// ## CString -> wchar_t -> char* ##


wchar_t* strWCHAR;

char* strOutput;

int iLength;


strWCHAR = strInput.GetBuffer(strInput.GetLength());

iLength = WideCharToMultiByte(CP_ACP, 0, strWCHAR, -1, NULL, 0, NULL, NULL);

strOutput = new char[iLength];


WideCharToMultiByte(CP_ACP, 0, strWCHAR, -1, strOutput, iLength, 0, 0);


return strOutput;

}