Я переписываю старое приложение VB6 на c# на компьютере Win10Pro64bit. Приложение VB6 использует OCX под названием IMAGinE. Я могу добавить элемент управления в ToolBox. Когда я это делаю, он добавляет две ссылки: AxIMAGINELib и IMAGINELib. В ссылках IMAGINELib есть маленький желтый треугольник, указывающий на проблему со ссылкой. Я могу добавить элемент управления в форму. В свойствах указано, что он относится к типу «AxIMAGINELib.AxIMAGinE». Когда я пытаюсь запустить приложение, я получаю следующую ошибку на вкладке «Список ошибок» VS:
Could not resolve COM reference "8a4feb20-a486-11cf-be99-0020afd208b9" version 1.0. Object reference not set to an instance of an object.
Когда я go перехожу на вкладку «Вывод» VS, сразу отображается следующее предупреждение перед указанной выше ошибкой:
Cannot get the file path for type library "bef6e001-a874-101a-8bba-00aa00300cab" version 2.0. Library not registered. (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED))
Краткий поиск, кажется, показывает, что «bef6e001-a874-101a-8bba-00aa00300cab» указывает на olepro32.dll.
Я зарегистрировал OCX, используя regsvr32, как в каталоге windows \ system32, так и в каталогах windows \ syswow64. Я зарегистрировал olepro32.dll в каталоге syswow64, но не в каталоге system32, потому что он не существует. Это ничего не изменило.
Я удалил ссылку на IMAGINELib и сохранил ссылку на AxIMAGINELib, думая, что ей не понадобятся обе ссылки, и потому что ссылка IMAGINELib имела маленький желтый треугольник. Это ничего не изменило.
Компания, создавшая оригинальный OCX, больше не работает, и у меня нет оригинального установщика компонентов.
Есть идеи, что я могу сделать, чтобы получить этот OCX работает? Я не хочу использовать OCX в форме. Мне нужен доступ к информации, которую может прочитать только OCX. Спасибо.