Visual c # Express Edition - не удается заставить работать Acrobat pdf reader - PullRequest
2 голосов
/ 14 января 2010

Я пытаюсь открыть документ PDF внутри приложения C # с помощью взаимодействия между приложениями (IAC) Acrobat в проекте Visual C # 2008 Express Edition.
При выполнении следующего кода я получаю исключение:

CAcroPDDoc pdDoc = new AcroPDDocClass();  

Исключение сообщает, что фабрика класса COM для определенного CLSID завершилась с ошибкой 80040154. При поиске кода ошибки в winerror.h на MSDN ошибка связана с тем, что класс не зарегистрирован.
Я пытался использовать regsvr32 для регистрации Interop.Acrobat.dll, но это не работает (не удается найти точку входа DllRegisterServer).
Я пробовал пример C # проекта, который поставляется с Acrobat 9 SDK (BasicIacCS - есть визуальный студийный проект с именем BasicIacCS.suo, он импортирует в c # Express без ошибок, но завершается неудачей с тем же исключением)


Я совершаю фундаментальную ошибку? (Я новичок в программировании Windows / .NET)
Это возможно при экспресс-выпуске или я должен перейти на Visual Studio?


Глядя на проблему, CLSID, на который жалуются, доступен, когда я выполняю ILDASM своего приложения (файл .exe) - это CLSID класса AcroPDDoc, к которому я пытаюсь получить доступ. Этот класс и связанный с ним CLSID отсутствуют в реестре. У меня установлен только Acrobat Reader - не полная версия. Требуется ли полная версия Acrobat для доступа к интерфейсам COM? (У меня есть только Acrord32.dll, а не Acrobat.dll в системе). Я опробовал ту же программу на другом компьютере с Vista и удалил / переустановил Arobat Reader с тем же результатом.

1 Ответ

2 голосов
/ 14 января 2010

Возможно, проблема в том, что основная dll Acrobat не зарегистрирована, а не dll взаимодействия.

Попробуйте переустановить Acrobat или зарегистрировать библиотеки Acrobat DLL.

...