std::string 到 LPOLESTR
我有一个像这样的字符串数组:
using std::string;
string myArray[] = { string("abc"), string("foo"), string("muh") };
现在我想使用这个函数:
HRESULT Init(T* begin, T* end, IUnknown* pUnk, CComEnumFlags flags = AtlFlagNoCopy );
T 在我的例子中是 LPOLESTR。所以我需要将 std::string 数组分别转换为 LPOLESTR 我需要一个 LPOLESTR* 来开始和结束这个数组。这是怎么做到的?
提前谢谢
I have an array of strings like this:
using std::string;
string myArray[] = { string("abc"), string("foo"), string("muh") };
Now I want to use this function:
HRESULT Init(T* begin, T* end, IUnknown* pUnk, CComEnumFlags flags = AtlFlagNoCopy );
T is in my case LPOLESTR. So I need to convert the array of std::string to LPOLESTR respectively I need an LPOLESTR* to begin and end of this array. How is that done?
Thx in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
ATL 有一组宏集,用于字符串转换。在您的情况下,您可以使用:
请注意,OLESTR 基本上是 wchar_t*,因此如果您使用 std::wstring (或宽字符字符串文字),您甚至不需要宏:
ATL has a set of macros for string conversions. In your case, you can use:
Note that OLESTR is basically a wchar_t*, so if you're using std::wstring (or wide char string literals) you don't even need the macro: