作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下是我尝试过的,但没有成功。
std::wstring = L"Text";
USES_CONVERSION;
LPOLESTR lpDesc = W2OLE((LPWSTR)wsDescr.c_str());
请问谁能说一下更好的方法吗?
最佳答案
LPOLESTR
是一个 OLECHAR
字符串,本质上是 wchar_t
。因此,LPOLESTR
是一个以 null 结尾的 wchar_t*
。 LPOLESTR
是 Microsoft 创建的 typedef
。这些是 Microsoft 在 MFC 4.0 之前使用的自动 ANSI/Unicode 转换方案的遗迹,此后已放弃。对于Win32开发,“OLE”对应Unicode。例如,在 Win32 开发中,OLECHAR
只是一个 wchar_t
,LPOLESTR
是一个宽字符串(例如 wchar_t*
)。
从 wchar_t
字符数组构造 wstring
非常简单 -
wchar_t* Array = L"Hello";
std::wstring strArray(Array);
要将另一个方向从 wstring 转换为 wchar_t*,你可以这样做 -
wstring wstr = L"Test wstring";
const wchar_t *pwstr = wstr.c_str();
你也可以试试这个,
LPOLESTR tempString = W2OLE((wchar_t*)wstring_temp.c_str());
关于wstring - 如何将 wstring 转换为 LPOLESTR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6682508/
我是一名优秀的程序员,十分优秀!