std :: string в LPOLESTR - PullRequest
       9

std :: string в LPOLESTR

2 голосов
/ 13 октября 2011

У меня есть массив таких строк:

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 Ответ

6 голосов
/ 13 октября 2011

ATL имеет набор макросов для преобразования строк.В вашем случае вы можете использовать:

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

Обратите внимание, что OLESTR - это, по сути, wchar_t *, поэтому, если вы используете std :: wstring (или широкие строковые литералы), вам даже не нужнымакрос:

LPOLESTR olestr = std_wstr.c_str();
...