繁体   English   中英

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

[英]How to convert from LPWSTR** to std::vector<std::wstring>

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM