问题描述
- 从VARIANT里提取字符串数组
-
VARIANT pvarRet; if(S_OK == pIHTMLWindow->execScript(CComBSTR(js_str), CComBSTR("JavaScript"), &pvarRet)) { if (pvarRet.vt == VT_ARRAY | VT_BSTR ) { //此处如何提取字符串数组 } } pIHTMLWindow->Release(); 昨天百度了半天 精疲力竭 实在解决不了了 求各位大师帮忙
解决方案
// parameter validation and error checking omitted for clarity
template<typename T>
void FromVariant(VARIANT Var, std::vector<T>& Vec)
{
CComSafeArray<T> SafeArray;
SafeArray.Attach(Var.parray);
ULONG Count = SafeArray.GetCount();
Vec.resize(Count);
for(ULONG Index = 0; Index < Count; Index++)
{
Vec[Index] = SafeArray[Index];
}
}
....
std::vector<double> Vec;
VARIANT Var = ...;
FromVariant(Var, Vec);
...
解决方案二:
google 搜素下,VC++ com VARIANT array string
第一个结果
http://stackoverflow.com/questions/2359065/a-simple-way-to-convert-to-from-variant-types-in-c
就是。
谁让你用垃圾山寨百度的。
时间: 2024-10-31 22:42:48