Я использую PDFCreator для создания PDF-файлов в VB6. Моей виртуальной машиной VB6 является 32-разрядная Windows XP. В этой системе создание PDF-файлов работает как из настольного приложения, так и из ASP (через веб-интерфейс VB).PDFCreator и VB6 на 64-бит: компонент ActiveX не может создать объект
Когда я создаю ех для запуска на Windows 7 или Windows Server 2008 R2 или использовать его в вебе-классе выполнении я получаю:
Run-time error '429':
ActiveX component can't create object
Это при использовании раннего связывания. Добавить ссылку на проект в «C: \ Program Files \ PDFCreator \ PDFCreator.exe», а затем в своем коде я делаю:
Public WithEvents mPDFCreator As PDFCreator.clsPDFCreator
Set mPDFCreator = New PDFCreator.clsPDFCreator
Если я бы не использовать ссылки на проекты и использовать позднее связывание вместо этого, то он работает в настольном приложении, но все еще не работает в среде веб-класса. Позднее связывание делается так:
Set mPDFCreator = CreateObject("PDFCreator.clsPDFCreator")
Я хочу использовать раннее связывание, так что я могу использовать событие, плюс мне нужно работать в ASP/Web класс исполнении.
Я понимаю, что имею дело с древними технологиями здесь, и я должен был закалить ожидания при работе с такими вещами на современных 64-битных Windows и IIS. Если переносить это устаревшее приложение в .NET, я бы выбрал вариант.
В IIS я установил Включить 32-разрядные приложения в моем приложении. Я также пытался запустить его как администратора для устранения проблем с безопасностью.
Я сделал все, что умею отлаживать, но я в тупике. Я подозреваю, что это связано с тем, что PDFCreator является 32-битным приложением и регистрацией COM. Я также пытался запустить regsvr32
из SYSWOW64, но файл PDFCreator.exe не может быть зарегистрирован.