我有一个像这样的字符串数组:
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 *来开始和结束这个数组。怎么做的?
提前谢谢
答案 0 :(得分:5)
ATL对字符串转换有set of macros。在您的情况下,您可以使用:
LPOLESTR olestr = A2OLE(std_str.c_str());
请注意,OLESTR基本上是一个wchar_t *,所以如果你使用std :: wstring(或宽字符串字符串),你甚至不需要宏:
LPOLESTR olestr = std_wstr.c_str();