std::string 到 LPOLESTR

发布于 2024-12-09 20:54:40 字数 379 浏览 1 评论 0原文

我有一个像这样的字符串数组:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

凤舞天涯 2024-12-16 20:54:40

ATL 有一组宏集,用于字符串转换。在您的情况下,您可以使用:

LPOLESTR olestr = A2OLE(std_str.c_str());

请注意,OLESTR 基本上是 wchar_t*,因此如果您使用 std::wstring (或宽字符字符串文字),您甚至不需要宏:

LPOLESTR olestr = std_wstr.c_str();

ATL has a set of macros for string conversions. In your case, you can use:

LPOLESTR olestr = A2OLE(std_str.c_str());

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:

LPOLESTR olestr = std_wstr.c_str();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文