Как конвертировать из LPWSTR ** в std :: vector & lt; std :: wstring & gt;

У меня есть функция, которая работает с std :: vector,
объявлено так:

void MyFunc(std::vector<std::wstring> &vFillArray){
//....
//fill the vector with wstrings
//....
}

Теперь я хотел бы экспортировать свою функцию в библиотеку DLL и сделать это
доступно для приложения VB 6.
Использование библиотеки в том виде, в каком она есть, приведет к сбою приложения vb 6.
Я должен изменить объявление на LPWSTR ** (или wchar_t **, я думаю), но сейчас,
Как преобразовать этот тип внутренне в моей функции C ++?
Внутренне я использую std :: vector, чтобы заполнить вектор строкой.
Любой совет?

0

Решение

Если предположить, LPWSTR такой же как wchar_t, вы можете использовать обычные конструкторы итератора-назначения и функции std::vector:

wchar_t const *raw_data[] = {L"Hello", L"World", L"Test"};
std::vector<std::wstring> vec(raw_data, raw_data+2); // construct with first 2 elements
std::wcout << vec[0] << ' ' << vec[1] << '\n';
wchar_t const ** raw_ptr = raw_data;
vec.assign(raw_ptr, raw_ptr+3); // assing 3 elements
std::wcout << vec[0] << ' ' << vec[1] << ' ' << vec[2] << '\n';
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]