C++ 无法注册带有Boost的regsvr32 DLL

C++ 无法注册带有Boost的regsvr32 DLL,c++,boost,dll,C++,Boost,Dll,我正在尝试为一个带有Boost的activexdll执行regsvr32,到目前为止,我可以很好地构建这个DLL 然而,问题是,regsvr32不断失败。可以在此处找到可能的解决方法: 如果我尝试添加BOOST\u ALL\u DYN\u链接,它会出现此错误“将dll BOOST库与静态运行时混合是一个非常糟糕的主意…”,因此我将其删除,这样就不会出现此类错误。删除后,DLL可以很好地构建 现在我的问题是,如何使用Boost注册一个ActiveX DLL?有人尝试过并使其工作吗?重建Boost,

我正在尝试为一个带有Boost的activexdll执行
regsvr32
,到目前为止,我可以很好地构建这个DLL

然而,问题是,
regsvr32
不断失败。可以在此处找到可能的解决方法:

如果我尝试添加
BOOST\u ALL\u DYN\u链接
,它会出现此错误
“将dll BOOST库与静态运行时混合是一个非常糟糕的主意…”
,因此我将其删除,这样就不会出现此类错误。删除后,DLL可以很好地构建


现在我的问题是,如何使用Boost注册一个ActiveX DLL?有人尝试过并使其工作吗?

重建Boost,这次不要静态链接到运行时,无论如何,在大多数情况下这是一个坏主意(不知道为什么回答您上一个问题的人认为,它与您以前的问题完全无关)。使用
runtime link=shared
而不是
static
调用
b2
,然后您应该能够使用
BOOST\u ALL\u DYN\u link
。如果我使用BOOST\u ALL\u DYN\u link,那么我应该在debug and release文件夹中添加BOOST DLL,对吗?这是唯一的解决方案吗?我得到的印象是,冲突不在于Boost的构建配置,而在于ActiveX DLL本身似乎与静态运行库相链接。确保它使用与Boost二进制文件相同的标志(动态运行时!)。(IOW@Praetorian我没有看到任何迹象表明boost实际上是按照您的假设使用
runtime link=static
选项编译的。我认为相反的可能性更大)。按照您的建议,它给出了“Error 110 Error C1189:#Error:#将dll boost库与静态运行时混合是一个非常糟糕的主意。。。“@sehe我从他的答案和他在尝试动态链接到Boost时看到的错误中假设了静态链接部分。但是如果动态链接到运行时也不起作用,那么我就没有主意了。