为什么“CWnd::MessageBoxW”: 不能将参数 1 从“char [100]”转换为“LPCTSTR”

我这是哪里错了求各位给个指示出来谢谢用的是vs2008... 我这是哪里错了求各位给个指示出来谢谢
用的是vs2008
展开
 我来答
wm45904978
推荐于2016-07-04 · TA获得超过132个赞
知道答主
回答量:52
采纳率:0%
帮助的人:61.9万
展开全部
因为你的工程环境是unicode环境,是宽字符(wchar_t),而char是ASCII,所以字符编码不符合
LPCTSTR:
LP:long point 长指针
C:const常量
T:UNICODE下就是W(wide)表示宽的意思,多字节环境下就是A(ascii)
STR:string字符串

解决方法:
1、改变你工程的属性:unicode->多字节
详细:项目菜单->项目属性(最下一列菜单)->配置属性->常规:有个字符集属性,将unicode改成多字节(VS2013版本)
2、使用MFC的CFILE读取,直接使用宽字符串操作比如CSTRING OR wchar_t
或者也可以先将char数组转换成wchar_t(或者CSTRING)

PS:好像第一种最简单,改个工程属性就行了
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式