Библиотека .NET, использующая 32-битный OCX, не работает на 64-битной win7 - PullRequest
0 голосов
/ 09 ноября 2011

Я использовал 32-битный OCX в своем проекте .NET 4, построенном на 32-битной платформе с целью x86.Когда я запускаю это на 64-битной платформе Windows 7, DLL с 32-битным OCX генерирует ошибку исключения плохого образа.Кажется, что остальные библиотеки .NET работают нормально.

У кого-нибудь есть предположения о том, что мне нужно сделать, чтобы это работало.Есть ли примеры этой проблемы в Интернете?

Ответы [ 3 ]

1 голос
/ 09 ноября 2011

В свойствах проекта установите целевую платформу на x86: enter image description here

0 голосов
/ 09 ноября 2011

64-битный процесс может загружать только 64-битные библиотеки.Из этого правила нет исключений.Стандартная рекомендация Microsoft в этом случае заключается в использовании какого-либо межпроцессного взаимодействия.В частности, COM exe-сервер может работать в такой ситуации.

Итак, вам нужно запустить приложение в 32-битном режиме или иметь внутрипроцессный COM-сервер в 64-битном режиме или использовать межпроцессное взаимодействие.

0 голосов
/ 09 ноября 2011

Попробуйте использовать CorFlags.exe, чтобы заставить вашу сборку работать в 32-битном режиме:

corflags.exe  "c:\your executable.exe" /32BIT+ /Force
...