0

我创建了一个 NPAPI 插件,并将其打包在 Chrome 扩展程序中。我能够在 Windows 2003 和 Windows XP 64 位的 Chrome 中成功安装和使用该扩展程序。

但是,当我在 Windows 7(32 位或 64 位)或 Windows XP 32 位上安装插件时,我无法在 Chrome 中使用该扩展程序。chrome 日志显示错误消息“无法初始化插件”。

我在所有环境中都运行了依赖项walker,看起来在扩展不起作用的环境中,它们都有共同的警告消息“警告:由于缺少导出功能,至少一个模块具有未解析的导入在延迟负载相关模块中。” (有问题的 DLL 是 SHLWAPI.DLL、IEFRAME.DLL 和 MPR.DLL)而扩展工作的环境没有此警告(尽管其中一个确实警告未找到延迟加载依赖模块)。

这些 DLL 依赖项是否应该在不同版本的 Windows 中有所不同?解决它们的最佳方法是什么?或者插件故障很可能与这些 DLL 依赖项无关?

4

2 回答 2

2

通过使用“/MT”编译器标志而不是默认的“/MD”编译二进制文件来重建您的项目而不依赖于运行时库。

如果您依赖开源代码,请确保使用“/MT”标志重新构建每个项目,否则您将永远追逐这些运行时 DLL 问题。

于 2012-10-11T19:28:13.317 回答
0

shlwapi 和 ieframe 可能与您的问题无关;看到这些错误是一个常见问题。不确定mpr.dll,没见过那个。

您可以尝试使用FireBreath插件并比较依赖项walker 结果,看看您是否可以发现任何您需要firebreath 不需要的东西,因为firebreath 没有外部DLL 依赖项。

于 2012-09-06T15:41:00.887 回答