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