2016-11-09 19 views
0

을 (클래스가 등록되지 않았습니다) I가 나는 qt wiki부터 읽은 내용에서 다음 코드 :Qt는 액티브 X를 CoCreateInstance 실패 어도비 리더

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이 작동하는 방식에 대해 빈을 이해하지 못한다고 썼습니다. .NET Regasm.exe 유틸리티는 잘못된 손에 매우 위험한 총입니다. Linux 및 Mac을 가능한 플랫폼으로 나열하면 안전 스위치가 꺼져 있다는 것을 알 수 있습니다. 적절한 ProgId는 "AcroPDF.PDF"입니다. 자신을 지원해야하는 종류의 프로그램이 아니라 Acrobat에 의존하지 마십시오. 주위에 많은 PDF 뷰어가 있습니다. –

+0

가능한 이유는 ActiveX가 32 비트이고 응용 프로그램이 64 비트이므로 ActiveX를 찾을 수 없다는 것입니다 – demonplus

답변

0

COM 개체가 등록 누락으로 인해 발견되지 않은 것 같습니다. ActiveX DLL이 등록되어 있는지 확인하십시오. regsvr32을 사용하십시오. 이를 실행하려면 관리자 권한이 필요할 수 있습니다. 명령 행은

regsvr32 AcroPDF.dll