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消息,创建窗口";
所以用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消息,创建窗口";
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- VC中实现文字竖排的简单方法(推荐)
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C语言自动生成enum值和名字映射代码
- C语言练习题:自由落体的小球简单实例
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中进制知识汇总
- C语言判断一个数是否是2的幂次方或4的幂次方
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构