MFC中 CString與Char[] 的相互轉換
阿新 • • 發佈:2019-02-05
為了簡化操作,我寫成了兩個函式:
//CString轉Char[] 返回陣列首元素地址
char * CSocket_ClientDlg::CStringToCharArray(CString str)
{
int str_len = WideCharToMultiByte(CP_ACP, 0, str, str.GetLength(), NULL, 0, NULL, NULL);//計算位元組數
char * CharArray = new char[str_len+1];
WideCharToMultiByte(CP_ACP, 0, str, str.GetLength(), CharArray, str_len, NULL, NULL);
CharArray[str_len] = '\0' ;
return CharArray;
}
//Char[]轉CString返回CString
CString CSocket_ClientDlg::CharArrayToCString(char CharArray[])
{
CString str;
int Char_len = strlen(CharArray);
int len = MultiByteToWideChar(CP_ACP, 0, CharArray, Char_len, NULL, 0);//計算字元數
TCHAR *buf = new TCHAR[len + 1];
MultiByteToWideChar(CP_ACP, 0 , CharArray, Char_len, buf, len);
buf[len] = '\0';
str.Append(buf);
delete[]buf;
return str;
}