std :: string到LPOLESTR

时间:2011-10-13 08:37:21

标签: c++ string com ole

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

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

提前谢谢

1 个答案:

答案 0 :(得分:5)

ATL对字符串转换有set of macros。在您的情况下,您可以使用:

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

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

LPOLESTR olestr = std_wstr.c_str();