单个进程可以加载/使用msvcr100.dll和msvcr110.dll而不会导致问题吗?

时间:2013-02-26 12:56:38

标签: visual-studio-2010 visual-c++ visual-studio-2012 msvcrt mixed-mode

混合模式C ++应用程序是使用VS2012构建的,它引用了托管DLL Noesis.Javascript.dll(我认为它是使用VS2010构建的),后者又在运行时与msvcr100.dll链接。

我观察到一次崩溃,似乎显示了来自VS2012的msvcr110.dll的Noesis.Javascript.dll调用库函数中的代码。

是否可以使用两个不同版本的C ++运行时库运行单个进程,或者这里发生的问题可能是什么原因?有什么替代方案?

2 个答案:

答案 0 :(得分:1)

正如在answer中所提到的,实际上不可能组合这些二进制文件。崩溃可能是由于不兼容造成的。

您可以尝试以下方法:项目属性 - >一般 - >平台工具集:Visual Studio 2010(v100)。

答案 1 :(得分:1)

可以在同一个进程中使用这两个运行时DLL,但要安全地这样做,需要非常小心,以确保在另一个对象中不使用任何对象。