用VC++在VS2010中的类型转换问题(char*或string转换成LPCWSTR)

我建的是空的win32应用程序,想写个程序,当用户按下键盘的时候,操作系统能捕捉到这个消息,并弹出一个MessageBox,内容写:您按下的是xx键。在VC6.0中很容易... 我建的是空的win32应用程序,想写个程序,当用户按下键盘的时候,操作系统能捕捉到这个消息,并弹出一个MessageBox,内容写:您按下的是xx键。在VC6.0中很容易实现,可是不知道在VS2010中怎么搞,由于内容是动态的,所以要用一个字符数组或是string类型来存储要输出的话,可是要把字符串转化成LPCWSTR类型,有没有什么相对简单的方法实现。现在我是用http://hi.baidu.com/ruisen/blog/item/601dc124a5c0cb074c088de9.html上给出的函数,能不能有两到三句直接转换的方法,我不想为了这个单独搞一函数啊,或者大神帮忙讲下MultiByteToWideChar的用法,在msdn上找不到 展开
 我来答
adengou
2011-08-18 · TA获得超过1666个赞
知道小有建树答主
回答量:252
采纳率:100%
帮助的人:349万
展开全部
VS2010默认是Unicode的,在VC 6.0中编译成功的项目在VS2010中常会出现类型错误。 经常出现的错误是:不能从const char *转换为LPCWSTR 如使用CreateDC("DISPLAY",NULL,NULL,NULL)就会报错,如果使用强制转换(LPCWSTR)"DISPLAY",虽然能够通过,但是编码会出错。 可行的办法是使用 TEXT("DISPLAY")转换, CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL); 另一种方法是: 项目菜单——项目属性(最后一个)——配置属性——常规——项目默认值——字符集,将使用Unicode字符集改为未设置即可。

本人推荐用最后一种方法,即把“Unicode字符集”改为“未设置”。 非常方便。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式