转自 cnblog no13bus
IntelliSense: 不能将 "const char *" 类型的值分配到 "LPCWSTR" 类型的实体 错误解决方法
提倡方法:
方法一:
MessageBox(_T"你已经提交成功。");
即在参数前加上_T
这样不会是写出来的程序占据过大空间,如果采取下述方法,虽然也很方便,但经测试会使程序占用的空间翻倍。把项目—属性—常规—字符集把使用 Unicode 字符集改为使用多字节字符集
或者:
char lpszClassName[]="窗口";
char lpszTitle[]="My_Windows";
将字符用char数组代表
这在写windows api程序里面经常发现或者是在directx的二次开发里面。
CWnd::MessageBoxW”: 不能将参数 1 从“const char [16]”转换为“LPCTSTR 三种解决方法:
在外面用vs2005编写mfc程序的时候经常要MessageBox("提示信息")函数,在vc6.0是没有问题的,但是在vs2005却会有下面的提示:
error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [17]”转换为“LPCTSTR”
这个错误提示的原因是VS2005默认使用的是UNICODE字符集,在参数转换时会出错
解决方法很简单。
方法一:
MessageBox(_T"你已经提交成功。");
即在参数前加上_T
方法二:
在新建项目时,把使用UNICODE字符集取消,如下图:
方法三:
选择“项目”-》“XXX项目属性”-》“配置属性”-》“常规”选项中,把“字符集”改为“使用多字节字符集”,然后确定。如下图: