主题:vs2005-vc++遇到的第一个典型问题
zzaqtf
[专家分:70] 发布于 2008-02-26 13:20:00
debug:
d:\my documents\visual studio 2005\projects\test\test\winmain.cpp(48) : error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'char [20]' to 'LPCWSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
code:
char szChar[20];
sprintf(szChar,"u press letter %c",wParam);
MessageBox(hwnd,szChar,"caption",0);
回复列表 (共6个回复)
沙发
zzaqtf [专家分:70] 发布于 2008-02-26 13:27:00
vs2005的c++,字符串不能直接当地址用吗
板凳
shuukaki [专家分:850] 发布于 2008-02-26 15:53:00
NO NO NO
VS2005是支持UNICODE码的,也就是双字节。
你的工程设置里面设置了支持UNICODE码
解决方法:
1,取消支持UNICODE码
2,使用宽字符。
如:MessageBox(NULL, _T("Buffer"), _T("caption"), MB_OK);
数组可以用TCHAR类型。
3 楼
zzaqtf [专家分:70] 发布于 2008-02-26 17:10:00
谢谢楼上的,1说偶就明白了.但是怎么取消捏?能不能再告诉下。
evc就是用TEXT("")
4 楼
zzaqtf [专家分:70] 发布于 2008-02-26 17:21:00
d:\my documents\visual studio 2005\projects\test\test\winmain.cpp(17) : error C3861: '_T': identifier not found
new error...
code:
TCHAR szChar[20];
sprintf(szChar,_T("u press letter %c"),wParam);
MessageBox(hwnd,szChar,_T("caption"),0);
5 楼
shuukaki [专家分:850] 发布于 2008-02-26 20:19:00
选择工程,在属于页中常规选项中 项目默认值中的字符集使用多字节字符集即可
6 楼
ja_jerry [专家分:90] 发布于 2008-02-27 14:34:00
与以前版本的VC工程不同,visual studio 2005新建工程默认使用的编码类型为UNICODE,这就使很多以前使用多字节编码的代码无法通过编译,以后的编码将多采用UNICODE编码,关于UNICODE编码建议参考《Windows核心编程》,如果你现在的工程不用考录编码格式,建议你采用多字节编码,设置方式如下(visual studio 2005 英文版):启动工程-》Project-》Properties(或ALT+F7)弹出“工程名Property pages”对话框,然后展开Configuration Properties(属性配置)-》General(普通?)这时在右边找到Character Set在右边的下拉列表里面选择Use Multi-Byte Character Set,保存退出,这时你的工程编码格式就是多字节的了。你上面的问题也就解决了
我来回复