CWindowImpl :: Create()在Windows 7中失败

时间:2011-08-24 16:07:17

标签: firefox windows-7 npapi browser-plugin

我有一个Firefox插件dll,在Windows XP中工作正常但在Windows 7中崩溃。问题是CWindowImpl :: Create()无法创建Window(窗口句柄为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/但还没有解决方案。

任何帮助都将受到高度赞赏。

Raveesh

1 个答案:

答案 0 :(得分:1)

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

  1. 转到命令提示符
  2. 执行命令bcdedit / set nx AlwaysOff
  3. 重新启动机器(需要重新启动才能反映上述设置)
  4. 理想情况下,启用DEP后,如果要运行插件,则必须使用最新版本的Windows SDK构建插件。

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