c++ - 使用 Boost.Log(或 Boost.Thread)时 dllinit.cpp 行 703 中的 MFC 断言

标签 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 之后修复,但我不知道,是否已完成。 按照建议动态链接到 Boost here没有帮助。

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

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

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

最佳答案

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

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

关于c++ - 使用 Boost.Log(或 Boost.Thread)时 dllinit.cpp 行 703 中的 MFC 断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19629204/

相关文章:

c++ - Visual Studio - 如何链接具有不同位数的项目构建

c++ - boost 偏度 C++ 示例

c++ - boost.graph 1.56.0 和 g++ 4.6.4 编译错误

c++ - Windows Socket 无法绑定(bind) VPN IP 地址

c++ - 启动另一个应用程序作为弹出窗口

C++ - 64 位上 SP_DEVINFO_LIST_DETAIL_DATA_W 的大小

c++ - 输出到控制台重叠

c++ - 定义 NDEBUG 时 boost 序列化链接器错误

visual-c++ - 仅在需要时才在 MFC 应用程序中请求管理员权限

c++ - boost asio steady_timer 上的多个递归 async_wait