2011-10-13 69 views
1

我有一個字符串像這樣的數組:的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 *來開始和結束這個數組。這是如何完成的?提前

THX

回答

5

ATL有字符串轉換一個set of macros。你的情況,你可以使用:

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

注意OLESTR基本上是一個wchar_t的*,因此,如果您正在使用的std :: wstring的(或寬字符字符串文字),你甚至都不需要宏:

LPOLESTR olestr = std_wstr.c_str(); 
+0

這很有效!謝謝! – Michbeckable