1、最近使用MessageBoxW出现乱码,代码如下
MessageBoxW(NULL, (LPCWSTR)"123", (LPCWSTR)"456", MB_OKCANCEL | MB_ICONINFORMATION | MB_DEFBUTTON1);
运行结果如下图所示
2、解决办法,将上面代码改为下面几种方式
MessageBoxA(NULL, "123", "456", MB_OKCANCEL | MB_ICONINFORMATION | MB_DEFBUTTON1);
MessageBoxW(NULL, L"123", L"456", MB_OKCANCEL | MB_ICONINFORMATION | MB_DEFBUTTON1);
WCHAR title[100] = L"456";
WCHAR content[100] = L"123";
MessageBoxW(NULL, content, title, MB_OKCANCEL | MB_ICONINFORMATION | MB_DEFBUTTON1);
3、问题思考
其中L和WCHAR title[100] 都是数组 ,可以准确的找到数组的结尾,所以不会有任何的问题,LPCWSTR是const wchar_t* 指针,感觉找不到结束的标志,所以就会出现乱码