Using keyhelp.ocx
to display popup HtmlHelp in a modern Visual Studio C++ application fails.
I get a COM exception with no sensible error code. Looking at the debug output, there seems to be an Access Violation behind the scenes.
Your executable is build with Data Execution Prevention enabled, via /NXCOMPAT
. That's the default in Visual Studio.
keyhelp.ocx
is built using ATL7, which is incompatible with DEP - see http://support.microsoft.com/kb/948468
You need to disable DEP (/NXCOMPAT:NO
) for your executable or find an alternative to keyhelp.ocx
(I don't know of one).
(Note that's it's possible to enforce DEP system-wide - your code will still fail on such machines.)