尝试将学生考试结果从 Excel 导出到学生 OneNote 页面。
使用 QAxObject 动态调用导入 excel 数据可以完美运行,但是使用 OneNote 进行类似设置会导致未知
下面的getHiercrchy 文档是 dumpdoc.exe 的输出:
void GetHierarchy (QString bstrStartNodeID, HierarchyScope hsScope, QString& pbstrHierarchyXmlOut, XMLSchema xsSchema)
QVariantList params = ...
onenote_object->dynamicCall("GetHierarchy(QString, HierarchyScope, QString&, XMLSchema)", params);
执行 :
QAxObject* onenote = new QAxObject("OneNote.Application");
QString doc = onenote->generateDocumentation();
qDebug() << onenote->control(); // {dc67e480-c3cb-49f8-8232-60b0c2056c8e}
QVariantList params;
QString xml_out;
params << "" << 4 << xml_out << 0;
onenote->dynamicCall("GetHierarchy(QString, HierarchyScope, QString&, XMLSchema)", params);
错误
QAxBase: Error calling IDispatch member GetHierarchy: Unknown error
我尝试针对 OneNote.Application 的 CLSID 和 typelib 的注册表项运行 dumpcpp,认为这可能是非内置 Qt->COM 类型的类型错误,但没有产生输出。
dumpcpp -nometaobject -getfile {0EA692EE-BB50-4E3C-AEF0-356D91732725} -o onenote
我可以通过powershell操作页面并在 Visual Basic 中查看 typelib 参考,但想从 C++ 访问 OneNote。