1

当我尝试在我的一个 DLL 中使用 Boost.Log 时,我在 dllinit.cpp 中收到一个断言。

我有一个 tools.dll,其中包含我的日志记录工具,我尝试使用 Boost.Log 实现日志记录。此 tools.dll 由另一个 helper.dll 引用,并且两个 DLL 都在应用程序中使用。

但是,当我启动应用程序时,我得到了 ASSERT。

Boost 1.54 和(包括)Boost.Log 以及 Boost 1.48 和 Boost.Log 1.1 都会发生这种情况。

我浏览了很多邮件列表和旧帖子。到目前为止我所理解的,Boost.Thread 中的 _pRawDllMain 指针存在问题,有人建议将其注释掉

#include <boost/thread/detail/tss_hooks.hpp>

但这会导致内存泄漏?这个帖子说它会在1.40之后修复,但我不知道,如果这已经完成了。此处建议的动态链接到 Boost没有帮助。

到目前为止,询问boost-users并没有帮助。

任何提示,我应该检查什么?

编辑: 它被配置为标准 DLL,但对 MFC100.dll 有依赖,因为我使用 afxwin.h 中的 API 来获取应用程序的版本信息。

4

1 回答 1

0

所以我在tools.dll中删除了对MFC100.dll的依赖(GetVersionInfo在没有afxwin.h的情况下工作),所以在helper.dll中不再依赖MFC100.dll。

最后,我的 DLL 都不依赖于 MFC,因此 ASSERT 也消失了。谢谢xMRi!

于 2013-10-28T15:44:57.080 回答