在MFC做DLL动态链接库时,使用boost,出现断言错误

本文介绍了一种解决在MFC DLL工程中使用boost::thread导致的ASSERT错误的方法。错误发生在dllinit.cpp的第587行。解决办法是在boost源代码中注释掉特定的一行代码,然后重新编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

建立的MFC DLL工程中有使用boost::thread,就会发生compile正常但是一程式执行或者直接编辑就出現ASSERT错误。

错误位置:dllinit.cpp,Line: 587,ASSERT(AfxGetModuleState() != AfxGetAppModuleState());

解決方法就是到boost/libs/thread/src/win32/tss_pe.cpp里面把底下的程式代码注释掉(即把下面的那句代码注释掉)

extern BOOL (WINAPI * const _pRawDllMain)(HANDLE, DWORD, LPVOID)=&dll_callback;

再重新compile boost问题就解决了。

 

 

 

 

原贴:http://www.68idc.cn/help/buildlang/clang/2013080745246.html

 

转载于:https://www.cnblogs.com/jgliuhui1988/p/6874177.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值