我有这样的功能:使用WideCharToMultiByte转换LPCWSTR。需要帮助
BOOL WINAPI MyFunction(HDC hdc, LPCWSTR text, UINT cbCount){
char AnsiBuffer[255];
int written = WideCharToMultiByte(CP_ACP, 0, text, cbCount, AnsiBuffer , 0, NULL, NULL);
if(written > -1) AnsiBuffer[written] = '\0';
if(written>0){
ofstream myfile;
myfile.open ("C:\\example.txt", ios::app);
myfile.write(AnsiBuffer, sizeof(AnsiBuffer));
myfile.write("\n", 1);
myfile.close();
}
....
当我显示与MessageBoxW()输入文本LPCWSTR,文本显示了罚款。当我尝试将其转换为多字节时,返回值看起来很正常(例如:22,45等),但结果是一些废话(“从中国电子出版社出版)。建议?
注意,您可以使用wofstream写的Unicode(宽)字符串的文件。 http://msdn.microsoft.com/en-us/library/f1d6b0fk(VS.80).aspx – Andy 2009-03-02 02:13:32