gpt4 book ai didi

c++ - 添加 #include 会破坏我的 ActiveX 控件吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:15:03 28 4
gpt4 key购买 nike

在 ActiveX 控件中使用 boost::mutex header 是否存在已知问题?
( boost 版v1.39)

如果我在 Visual Studio 2008 中创建一个名为 “DefaultOCXControl”MFC ActiveX 控件 项目,那么我可以构建它,该控件将自身注册为构建的一部分,并且可以像您期望的那样插入到 ActiveX 测试容器中。一切顺利。

如果我再添加这一行:

#include <boost/thread/mutex.hpp>

在我的 DefaultOCXControlCtrl.h 文件顶部并重建:构建结束时的注册步骤失败并显示:

Debug Assertion Failed!
Program: C:\Windows\system32\regsvr32.exe
File: f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\dllinit.cpp
Line: 587

违规断言如下所示:

void AFXAPI AfxCoreInitModule()
{
ASSERT(AfxGetModuleState() != AfxGetAppModuleState());
...

尝试将控件插入 ActiveX 测试容器现在会产生相同的消息。如果我删除该行并重新构建,那么一切都很好 - 所以它肯定是该头文件中导致问题的原因。

最佳答案

您是否尝试过动态链接 boost::thread(定义 BOOST_THREAD_DYN_LINK)?

我在混合 C++/.NET 项目中使用 boost::thread 时遇到了这类问题,解决方案是动态链接 boost::thread(此处可能的解释:http://article.gmane.org/gmane.comp.lib.boost.user/22617/match=clr )

关于c++ - 添加 #include <boost/thread/mutex.hpp> 会破坏我的 ActiveX 控件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5355931/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com