【发布时间】:2013-10-28 07:28:58
【问题描述】:
当我尝试在我的一个 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来获取应用程序的版本信息。
【问题讨论】:
-
请提供 cmets,为什么你投反对票,这样我才能改进我的提问方式:)
-
您创建了哪种 DLL? MFC 扩展 DLL?标准DLL? MFC 是静态链接还是动态链接?
标签: c++ boost mfc boost-thread boost-log