0
我有什么,我从上qt wiki阅读下面的代码:的Qt的ActiveX的CoCreateInstance失败(没有注册类)ADOBE READER
auto pdfObject = new QAxObject("AxAcroPDFLib.AxAcroPDF");
qDebug() << pdfObject->dynamicCall("LoadFile(const QString)", "test.pdf");
qDebug() << pdfObject->dynamicCall("Print()");
但是当我运行它,我得到的消息:
CoCreateInstance failure (Class not registered)
QAxBase::setControl: requested control AxAcroPDFLib.AxAcroPDF could not be instantiated
我搜索了需要的DLL文件,并在C:\Program Files (x86)\Common Files\Adobe\Acrobat\ActiveX
中找到,并安装了Adobe Acrobat Reader DC。我能做些什么使这个工作?
是的,谁写道,wiki条目不了解COM的工作方式。 .NET Regasm.exe实用程序是一个非常危险的枪手。当他列出Linux和Mac作为可能的平台时,您也可以知道安全开关已关闭。正确的ProgId是“AcroPDF.PDF”。避免依赖Acrobat,而不是您想要支持自己的程序。很多很多的PDF查看器。 –
可能的原因是ActiveX是32位的,而你的应用程序是64位的,所以它无法找到ActiveX – demonplus