【发布时间】:2011-07-18 09:00:56
【问题描述】:
在 ActiveX 控件中使用 boost::mutex 标头是否存在已知问题?
(Boost 版本 v1.39)
如果我在 Visual Studio 2008 中创建一个名为 "DefaultOCXControl" 的 MFC ActiveX 控件 项目,那么我可以构建它,该控件将自身注册为构建的一部分,并且可以按照您的预期插入到 ActiveX 测试容器中。都很好。
如果我再添加这一行:
#include <boost/thread/mutex.hpp>
在我的DefaultOCXControlCtrl.h 文件顶部并重新构建:构建结束时的注册步骤失败:
调试断言失败!
程序:C:\Windows\system32\regsvr32.exe
文件:f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\dllinit.cpp
线路:587
有问题的断言如下所示:
void AFXAPI AfxCoreInitModule()
{
ASSERT(AfxGetModuleState() != AfxGetAppModuleState());
...
现在尝试将控件插入 ActiveX 测试容器会产生相同的消息。如果我删除该行并重建,那么一切都很好 - 所以它肯定似乎是那个头文件中的某些东西导致了这个问题。
【问题讨论】:
标签: c++ visual-c++ boost mfc activex