首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将wstring转换为LPOLESTR?

如何将wstring转换为LPOLESTR?
EN

Stack Overflow用户
提问于 2011-07-14 00:46:01
回答 2查看 8.9K关注 0票数 3

下面是我试过的一个,它不起作用。

代码语言:javascript
运行
复制
std::wstring = L"Text";
USES_CONVERSION;
LPOLESTR lpDesc = W2OLE((LPWSTR)wsDescr.c_str());

请任何人说一说什么是更好的方法?

EN

回答 2

Stack Overflow用户

发布于 2011-07-14 00:54:17

LPOLESTR是一个OLECHAR字符串,它本质上是wchar_t。所以LPOLESTR是一个以null结尾的wchar_t*LPOLESTR是微软公司开发的typedef。这些是微软在MFC 4.0之前使用的自动ANSI / Unicode转换方案的残余,后来放弃了该方案。对于Win32开发,"OLE“对应于Unicode。例如,在Win32开发中,OLECHAR只是一个wchar_t,而LPOLESTR是一个宽字符串(例如wchar_t*)。

要从wchar_t字符数组构造wstring,它很简单-

代码语言:javascript
运行
复制
wchar_t* Array = L"Hello";
std::wstring strArray(Array);

要将另一个方向从wstring转换为wchar_t*,您可以这样做-

代码语言:javascript
运行
复制
wstring wstr = L"Test wstring";
const wchar_t *pwstr = wstr.c_str();

你也可以试试这个,

代码语言:javascript
运行
复制
LPOLESTR tempString = W2OLE((wchar_t*)wstring_temp.c_str());
票数 8
EN

Stack Overflow用户

发布于 2011-07-14 00:49:24

您根本不需要转换,只需复制字符串:

代码语言:javascript
运行
复制
std::wstring str = L"Text";
LPOLESTR lpDesc = (LPOLESTR) new wchar_t[str.length() + 1];
strcpy(lpDesc, str.c_str());
delete[] lpDesc;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6682508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档