2016-11-09 10 views
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がインストールされています。この作品を作るには何ができますか?

+1

Yikesは誰でも、COMが動作する方法についてBeanを理解していないと書いています。 .NET Regasm.exeユーティリティは間違った手で非常に危険な銃です。安全スイッチがLinuxとMacを可能なプラットフォームとしてリストアップしているときに、安全スイッチがオフになっていることもわかります。適切なProgIdは「AcroPDF.PDF」です。あなた自身をサポートしなければならない種類のプログラムではなく、Acrobatに依存することを避けてください。たくさんのPDFビューアがあります。 –

+0

考えられる理由は、ActiveXが32ビットで、アプリケーションが64ビットなのでActiveXが見つからない – demonplus

答えて

0

COMオブジェクトが見つからない可能性があります。 ActiveX DLLが登録されていることを確認してください。 regsvr32を使用してください。実行するには管理者権限が必要な場合があります。コマンドラインは次のとおりです:

regsvr32 AcroPDF.dll 
関連する問題