error:"LPSTR"类型的实参数与"LPCWSTR"类型的形参不兼容

window7平台下的旗舰版VS2012.出现如图错误.... window7 平台下的旗舰版VS2012.出现如图错误. 展开
 我来答
吉祥二进制
高粉答主

2013-02-27 · 科技改变生活,生活改变科技。
吉祥二进制
采纳数:33926 获赞数:84581

向TA提问 私信TA
展开全部
vs默认字符串使用 unicode编码,因此所有的API函数都是调用的Unicode版本,比如MessageBox()它有MessageBoxA()和MessageBoxW()两个版本,在VS中默认调用的后者,所以在参数传递的时候,它需要的是UNIICODE的字串,你可以不管这些,直接使用TCHAR 而不是使用CHAR定义lpString[120], 使用TCHAR时请添加<tchar.h>的头文件。 没事 来0x30百度贴吧耍耍,共同交流学习。。也可以参加百度知道 0x30团队,帮助别人的同时也可以学到东西的。
lib210601127x
2013-02-27 · 超过11用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:17.7万
展开全部
字符串编码的问题。
MessgeBox的第二个参数是LPCWSTR类型,也就是const wchar_t * ,szString的定义改为
LPCWSTR szString = TEXT("Windows data type, string.");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lei_LINGER
2013-02-27 · TA获得超过1248个赞
知道小有建树答主
回答量:475
采纳率:0%
帮助的人:178万
展开全部
确实是编码问题,你可能是从VC6以下版本转到VS2003以上版本编程的,那么就存在字符是16位还是32位表示的问题.你可以去翻阅下<windows下的C/C++高级编程>开篇就是讲关于变量类型的问题.另有unicode编码一书.

我的意思与上一位相同.编码问题可以使用判断程序是否已经定义#define __Unicode宏来解决
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式