0

我有一个 Firefox 插件 dll,它在 Windows XP 中运行良好,但在 Windows 7 中崩溃。问题在于 CWindowImpl::Create() 无法创建窗口(窗口句柄为 NULL)。此外,GetLastError() 返回 NULL。

我正在使用 ATL 3.0。我正在考虑这是否会成为问题,因为许多接口类(如 CComModule)现在已过时。但令人惊讶的是,相同的 API 也适用于 IE9。所以,无法下定论。我还没有找到解决方案。在 msdn 论坛中找到了类似的查询 - http://social.msdn.microsoft.com/Forums/en-US/vcmfcatl/thread/2f200b88-622a-4f7c-9833-7d08bac4fa5f/但还没有解决方案。

任何帮助将不胜感激。

拉维什

4

1 回答 1

1

我在 Windows 7 的 FF 插件中找到了解决此问题的方法。答案在于 DEP(数据执行保护)。此功能在我的 Windows 7 机器中启用。禁用此功能后,我可以在 Firefox 中运行我的插件。这是在 Windows 7 中禁用 DEP 的方法。

  1. 转到命令提示符
  2. 执行命令 bcdedit /set nx AlwaysOff
  3. 重启机器(以上设置需要重启才能体现)

理想情况下,启用 DEP,如果要运行插件,则必须使用最新版本的 Windows SDK 构建插件。

原始链接 - http://techbaraha.blogspot.com/2011/12/firefox-plugin-on-windows-7-workaround.html

于 2012-03-09T09:52:58.113 回答