【发布时间】:2013-12-06 13:15:43
【问题描述】:
在现代 Visual Studio C++ 应用程序中使用 keyhelp.ocx 显示弹出 HtmlHelp 失败。
我得到一个没有明显错误代码的 COM 异常。查看调试输出,幕后似乎存在访问冲突。
【问题讨论】:
在现代 Visual Studio C++ 应用程序中使用 keyhelp.ocx 显示弹出 HtmlHelp 失败。
我得到一个没有明显错误代码的 COM 异常。查看调试输出,幕后似乎存在访问冲突。
【问题讨论】:
您的可执行文件是通过/NXCOMPAT 在启用数据执行保护的情况下构建的。这是 Visual Studio 中的默认设置。
keyhelp.ocx 使用 ATL7 构建,与 DEP 不兼容 - 请参阅 http://support.microsoft.com/kb/948468
您需要为您的可执行文件禁用 DEP (/NXCOMPAT:NO) 或找到 keyhelp.ocx 的替代方法(我不知道有哪一种)。
(请注意,可以在系统范围内强制执行 DEP - 您的代码在此类机器上仍然会失败。)
【讨论】: