CString与 char *之间的转换
CString与 char *之间的转换
——————————————————————————
————————————————————————
1、char * 转成 CString
char * str = " abcd1234 " ; // 预转换,得到所需空间的大小 int wcsLen = ::MultiByteToWideChar(CP_ACP, NULL, inputbuffer, strlen(inputbuffer), NULL, 0 ); // 分配空间要给'\0'留个空间,MultiByteToWideChar不会给'\0'空间 wchar_t * wszString = new wchar_t[wcsLen + 1 ]; // 转换 ::MultiByteToWideChar(CP_ACP, NULL, inputbuffer, strlen(inputbuffer), wszString, wcsLen); // 最后加上'\0' wszString[wcsLen] = ' \0 ' ; // 附加到CString对象上 CString content; content.Append(wszString);
1、CString 转成 char *
CString str = _T( " hello kitty 12345 hello jackson " ); int len = str.GetLength(); char * buffer = new char [len + 1 ]; memset(buffer, 0 ,len + 1 ); WideCharToMultiByte(CP_OEMCP, NULL, (LPCWSTR)str, - 1 ,NULL, 0 , NULL, FALSE); WideCharToMultiByte(CP_OEMCP, NULL, (LPCWSTR)str, - 1 ,(LPSTR)buffer, len, NULL, FALSE); buffer[len] = ' \0 ' ;