实战c++中的string系列--string到LPCWSTR的转换
2015-12-12 12:40
387 查看
今天再来介绍一下如何从string到LPCWSTR的转换。
LPCWSTR是什么类型呢?
看看如何定义的:
顾名思义就是:
LPCWSTR是一个指向unicode编码字符串的32位指针,所指向字符串是wchar型,而不是char型。
比如说MessageBoxW的第二、第三个参数就是LPCWSTR类型。
所以问题来了,有一个string类型的字符串,如何通过MessageBoxW进行显示呢?这就需要string到LPCWSTR类型的转换了!!
看到了吧 又一次用了MultiByteToWideChar函数。所以牢记这个函数的用法。
http://blog.csdn.net/wangshubo1989/article/details/49210385
LPCWSTR是什么类型呢?
看看如何定义的:
typedef const wchar_t* LPCWSTR;
顾名思义就是:
LPCWSTR是一个指向unicode编码字符串的32位指针,所指向字符串是wchar型,而不是char型。
比如说MessageBoxW的第二、第三个参数就是LPCWSTR类型。
`MessageBoxW(__in_opt HWND hWnd, __in_opt LPCWSTR lpText, __in_opt LPCWSTR lpCaption, __in UINT uType)`
所以问题来了,有一个string类型的字符串,如何通过MessageBoxW进行显示呢?这就需要string到LPCWSTR类型的转换了!!
string image_path = "c:\\avi.png"; size_t size = image_path.length(); wchar_t *buffer = new wchar_t[size + 1]; MultiByteToWideChar(CP_ACP, 0, response->image_path.c_str(), size, buffer, size * sizeof(wchar_t)); buffer[size] = 0; //确保以 '\0' 结尾 ::MessageBox(NULL, buffer, NULL, NULL); delete buffer; buffer = null;
看到了吧 又一次用了MultiByteToWideChar函数。所以牢记这个函数的用法。
http://blog.csdn.net/wangshubo1989/article/details/49210385
相关文章推荐
- 实战c++中的string系列--string到LPCWSTR的转换
- 实战c++中的string系列--std::string与MFC中CString的转换
- 实战c++中的string系列--std::string与MFC中CString的转换
- c++ 银行管理系统
- VC++ 获取mac地址
- (Win32): 已加载“C:\Windows\System32\ntdll.dll”。无法查找或打开 PDB 文件。
- C++中的成员变量是独立的,成员方法是共享的。
- CPP 6th——类(7)
- c++操作xml
- 11_排序二叉树删除-3
- c语言学习笔记之指针
- String C++完整实现。
- C语言总结
- c语言学习笔记之函数指针和指针函数
- c语言学习笔记之const关键字(理解)
- c语言学习笔记之内存分区
- Android:JNI函数编码风格(C风格与C++风格)
- c与c++相互调用机制分析与实现
- C++ Primer Plus第六版 第十七章 编程练习答案(完结篇...木有18章)
- C++ 模板详解(二)