Я пытаюсь открыть документ 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 с тем же результатом.