今天再来介绍一下如何从string到LPCWSTR的转换。
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的转换分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/31971.html