我需要在 C++ 中调用一个 COM 函数,该函数返回对SAFEARRAY(BSTR)
.
根据这个文件,它应该是:
QAxObject object = new QAxObject(...);
QStringList list;
for(int i=0; i<goodSize; i++)
list << "10.0";
object->dynamicCall("Frequencies(QStringList&)", list);
for(int i=0; i<list.size(); i++)
qDebug() << list.at(i);
但列表元素仍为10.0
.
我错过了什么吗?
编辑
我使用了 Oleview.exe,实际上,该函数如下所示void Frequencies(VARIANT* FrequencyArray);
:
但是 ActiveX 服务器的文档说:Use a safearray of strings (VT_BSTR) or reals (VT_R8 for double or VT_R4 for float)
.