发布网友 发布时间:2天前
共5个回答
热心网友 时间:3分钟前
VS2005之后,默认的是Unicode的,而在VC++6.0中默认是ANSI字符集,因此在VC下通过的程序,在vs中就会出现这个问题。解决的办法有两个:
1。用text()转换;
即如果定义了Unicode,标识字符为Unicode;否则,为ANSI字符集。
Syntax:
TEXT(
LPTSTR string
);
2。项目菜单——项目属性(最后一个)——配置属性——常规——项目默认值——字符集,将使用Unicode字符集改为未设置即可。
热心网友 时间:7分钟前
如果是MFC,就把程序里所有的 "abcd" 形式的字符串改成 _T("abcd")
如果不是,就先包含头文件tchar.h,再改。
你可以查一下msdn看看LPCWSTR是什么意思
另外,一般人应该调用的是MessageBox函数,而错误代码里显示的确是MessageBoxW,不觉得奇怪吗,也去看一下msdn吧
热心网友 时间:3分钟前
把你的第二个参数用CString(参数2)强制转换一下
热心网友 时间:8分钟前
是你的函数MessageBoxW()调用的时候,里面的第二个参数类型不一致早就的错误,需要先做一下类型转换把const char类型转换为LPCWSTR类型,也可以在传入的时候强制转换,即在MessageBoxW()里面的第二个参数前面加(LPCWSTR)。
热心网友 时间:5分钟前
没那么麻烦
char ch[27]="abc";
MessageBox(ch);