当我尝试在我的一个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>
但这会导致内存泄漏? 这thread表示它将在1.40之后修复,但我不知道,如果已经完成了。 如建议here动态链接到Boost并没有帮助。
boost-users询问到目前为止没有任何帮助。
任何提示,我应该检查什么?
修改 它被配置为标准DLL,但是对MFC100.dll有依赖性,因为我使用afxwin.h中的API来获取应用程序的版本信息。
答案 0 :(得分:0)
所以我在tools.dll中删除了对MFC100.dll的依赖(GetVersionInfo在没有afxwin.h的情况下工作),因此不再依赖于helper.dll中的MFC100.dll。
最后我的DLL都不依赖于MFC,所以ASSERT也消失了。谢谢xMRi!