2011-08-24 57 views
0

我有一个Firefox插件DLL,它在Windows XP中正常工作,但在Windows 7中崩溃。问题与CWindowImpl :: Create()无法创建窗口(窗口句柄一片空白)。另外,GetLastError()返回NULL。CWindowImpl :: Create()在Windows 7中失败

我正在使用ATL 3.0。我正在考虑这是否会有问题,因为许多接口类(如CComModule)现在已经过时。但令人惊讶的是,相同的API与IE9的工作。所以,无法作出任何结论。我还没有找到解决办法。在msdn论坛发现了一个类似的查询 - http://social.msdn.microsoft.com/Forums/en-US/vcmfcatl/thread/2f200b88-622a-4f7c-9833-7d08bac4fa5f/但是还没有解决。

任何帮助将不胜感激。

Raveesh

回答

1

我发现这个问题在FF插件在Windows 7,答案周围的工作在于DEP(数据执行保护)。此功能在我的Windows 7机器中启用。禁用此功能后,我能够在Firefox中运行我的插件。下面是如何在Windows 7中

  1. 转到禁用DEP到命令提示符
  2. 执行命令bcdedit /设置NX AlwaysOff
  3. 重新启动计算机(需要重新启动的上述设置来反映)

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

Original link - http://techbaraha.blogspot.com/2011/12/firefox-plugin-on-windows-7-workaround.html