如何转换LPWSTR **到std :: vector <std :: wstring>

时间:2018-04-10 13:55:54

标签: c++ vector wstring lpwstr

我有一个与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来用字符串填充向量。 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

假设LPWSTRwchar_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';