ActiveX OCX может регистрироваться при построении в режиме выпуска, но не в режиме отладки.

Я столкнулся с раздражающей проблемой. Используя Visual Studio 2008 в 64-разрядной ОС Windows 7 с пакетом обновления 1 (SP1), я перестроил элемент управления ActiveX, который годами работал на сайте заказчика. Он был построен в режиме Release. Но когда я проверил управление, оно разбилось. Я пытался собрать его в режиме отладки, но его не удалось зарегистрировать. Сообщение об ошибке:

«Модуль ... может быть несовместим с версией Windows, которую вы используете. Проверьте, совместим ли модуль с версией regsvr32.exe x86 (32-разрядная) или x64 (64-разрядная)».

Я попытался зарегистрировать его как с 64-разрядной, так и с 32-разрядной версиями regsvr32 и получил ту же ошибку с обеими из них.

Я бы очень хотел иметь возможность использовать отладчик с этим элементом управления. Если я не могу, мне придется просто брать под свой контроль окна сообщений, пока я не смогу определить место, где происходит сбой.


person ROBERT RICHARDSON    schedule 02.03.2017    source источник


Ответы (1)


Используйте Dependency Walker для профилирования регистрации вашего OCX и посмотрите, на что он жалуется. При регистрации любой версии вашего OCX соответствующие версии ваших зависимостей должны быть доступны для вашего OCX. Чтобы создать профиль, откройте файл regsvr32.exe правильной разрядности в Dependency Walker, выберите «Профиль» и введите имя своего OCX в поле «Аргументы программы».

person D A M    schedule 02.03.2017