1、最近使用MessageBoxW出现乱码,代码如下

MessageBoxW(NULL, (LPCWSTR)"123", (LPCWSTR)"456", MB_OKCANCEL | MB_ICONINFORMATION | MB_DEFBUTTON1);

运行结果如下图所示

使用出现MessageBoxW出现乱码的问题_MessageBox

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* 指针,感觉找不到结束的标志,所以就会出现乱码