您的位置:首页 > 编程语言 > C语言/C++

C++从char*到LPCWSTR的数据类型转换问题

2016-06-14 09:52 615 查看
最近用VS2010建立的C++项目在char*类型数据转换到LPCWSTR的时候,默认直接转换会提示报错。用强制转换的方式会导致乱码的出现。在网上查找了资料之后知道,“从Visual C 2005开始,编译器不再进行从char*到LPCWSTR的隐式转换了,用VC 6.0编译就没问题了,或者用提供的宏TEXT("字符串")来使用 MessageBox一类的API函数。“

所以用VS2010进行编译的时候最好用宏TEXT("字符串")的方法来进行转换。例:

    //定义信息字符串

    LPCWSTR  lpszCreate=TEXT("收到WM_CREATE消息,创建窗口");

    LPCWSTR  lpszDestroy=TEXT("收到WM_DESTRORY消息,窗口关闭");

    LPCWSTR  lpszCaption=TEXT("消息");

    LPCWSTR  lpszLBT=TEXT("鼠标左键按下,收到消息");

    LPCWSTR  lpszRBT=TEXT("鼠标右键按下,收到消息");

    LPCWSTR  lpszExit=TEXT("你确定要退出吗");

而不是:

    LPCWSTR  lpszCreate="收到WM_CREATE消息,创建窗口";

也不是:

   LPCWSTR  lpszCreate=(LPCWSTR)"收到WM_CREATE消息,创建窗口";
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息