回 帖 发 新 帖 刷新版面

主题:vs2005-vc++遇到的第一个典型问题

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个回复)

沙发

vs2005的c++,字符串不能直接当地址用吗

板凳

NO NO NO

VS2005是支持UNICODE码的,也就是双字节。
你的工程设置里面设置了支持UNICODE码

解决方法:
1,取消支持UNICODE码
2,使用宽字符。

如:MessageBox(NULL, _T("Buffer"), _T("caption"), MB_OK);
数组可以用TCHAR类型。

3 楼

谢谢楼上的,1说偶就明白了.但是怎么取消捏?能不能再告诉下。
evc就是用TEXT("")

4 楼

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 楼

选择工程,在属于页中常规选项中 项目默认值中的字符集使用多字节字符集即可

6 楼

与以前版本的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,保存退出,这时你的工程编码格式就是多字节的了。你上面的问题也就解决了

我来回复

您尚未登录,请登录后再回复。点此登录或注册