为什么LPCSTR插入到listbox显示为乱码

来源:百度知道 编辑:UC知道 时间:2024/09/24 13:25:09
myLPCSTR="你好你好啊";
myLPCWSTR=L"你好你好啊";
SendMessage(hwndList,LB_ADDSTRING,0,(LPARAM)myLPCSTR);//使用LPCSTR的这句就全部是乱码
SendMessage(hwndList,LB_ADDSTRING,0,(LPARAM)myLPCWSTR);//这句完全正常
thank you,没错我用的是.net,但是非常可恶的事我现在只有一个LPCSTR是从socket的inet_addr中得来的,他的格式是LPCSTR,当我想吧这个addr插入到listbox就是乱码。那现在有解决方案吗?我也知道改用LPCWSTR一点问题都没,可是 inet_addr只能取到和接受LPCSTR。难道我这个值就没办法插到listbox中吗,给点提示也好啊,谢谢了。

你肯定是用的.net平台

myLPCSTR="你好你好啊";

这个被默认的解释为ASCII字符.

L"你好你好啊";

使用了L宏以后编译器就把它解释为UNICODE字符.

.net下的 SendMessage要的就是UNICODE字符.

如果你在VC6.0,第一种情况就可以