我有這樣的功能:使用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