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