std::string to LPOLESTR

std::string to LPOLESTR

本文关键字:LPOLESTR to string std      更新时间:2023-10-16

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

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*来开始和结束这个数组。怎么做呢?

提前致谢

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

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

注意OLESTR基本上是一个wchar_t*,所以如果您使用std::wstring(或宽字符字符串字面量),甚至不需要宏:

LPOLESTR olestr = std_wstr.c_str();