Почему в моем приложении Visual Studio C++ происходит сбой keyhelp.ocx?

С помощью keyhelp.ocx отобразить всплывающее окно HtmlHelp в современном приложении Visual Studio C++ не удается.

Я получаю исключение COM без разумного кода ошибки. Глядя на выходные данные отладки, кажется, что за кулисами происходит нарушение прав доступа.

1 ответ

Решение

Ваш исполняемый файл собран с включенной функцией предотвращения выполнения данных, через /NXCOMPAT, Это по умолчанию в Visual Studio.

keyhelp.ocx построен с использованием ATL7, который несовместим с DEP - см. http://support.microsoft.com/kb/948468

Вам нужно отключить DEP (/NXCOMPAT:NO) для вашего исполняемого файла или найти альтернативу keyhelp.ocx (Я не знаю ни одного).

(Обратите внимание, что можно применять DEP в масштабе всей системы - ваш код все равно не будет работать на таких машинах.)

Другие вопросы по тегам