使用Boost.Log(或Boost.Thread)时,dllinit.cpp第703行中的MFC ASSERT

时间:2013-10-28 07:28:58

标签: c++ boost mfc boost-thread boost-log

当我尝试在我的一个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来获取应用程序的版本信息。

1 个答案:

答案 0 :(得分:0)

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

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