2

我正在使用 firebreath 在 windows xp 中使用 Visual Studio 2010 开发浏览器插件。该插件使用升压信号、文件系统和系统、libcurl 库。

该插件成功构建,但在使用 regsvr32 注册时出错:

LoadLibrary("np<plugin name>.dll") failed. The specified procedure could not be found. 

检查了一段时间后,我发现如果我删除升压信号模块,插件就会被注册。我检查了依赖walker中的插件dll,但没有丢失的dll。虽然它在 ADVAPI32.DLL 和 MPR.DLL 中显示了模块警告。谁能帮我解决这个问题,因为我无法从我的项目中删除信号模块?

4

1 回答 1

0

正如 FireBreath 邮件列表中所讨论的,这可能是 FireBreath 在包含其 boost 子集时无法正确执行的操作。我建议尝试自己构建和安装 boost,然后在 prep 脚本上使用外部 boost 标志。

您可以在 firebreath 网站的 Prep Scripts 页面上找到您需要的标志和其他用于准备脚本的标志。

至少你需要使用 "-D WITH_SYSTEM_BOOST=1"; 你可能还需要其他一些。

-D BOOST_ROOT="/path/to/boost" - set to path to your Boost installation
-D Boost_ADDITIONAL_VERSIONS="<versions>" - set specific Boost version (e.g. "1.43;1.43.0")
-D Boost_USE_STATIC_LIBS=on
-D Boost_USE_STATIC_RUNTIME=on should be used in windows to force linking to the boost libraries built with /MT(d).
于 2012-12-08T18:31:27.117 回答