在C应用程序中嵌入python:C运行时库的多个版本

时间:2017-06-22 20:10:08

标签: python c cpython msvcrt

我正在开发嵌入python的应用程序,我正在动态地将python代码(cpyhon)链接到我的库(为了支持多个python版本,希望如此)。当我加载pythonXY.dll库(假设它是 python27.dll )时, msvcr90.dll (VS 2008版,如果我没有记错的话)也将被加载为依赖。事实上,我现在有两个版本的CRT库加载到进程中(因为我正在使用 / MD 编译器开关 - 动态CRT链接):

  • vcruntime140.dll
  • MSVCR90.DLL

我知道这是非常糟糕的事情 - 将多个C运行时加载到同一个进程中。

另一方面,如果我使用 / MT 开关 - 静态链接的CRT,则加载 python27.dll时只加载 msvcr90.dll

有谁能告诉我这是不是一个好主意?

通常来说,有没有办法处理这种情况 - 使用一个CRT版本构建的应用程序或模块可以加载第三方库(在我的情况下 pythonXY.dll )使用其他CRT版本?

我在Windows 10上使用VS2015作为我的开发环境。由于项目仍处于开发的早期阶段,我还没有在github上放任何代码。

我对C不太熟悉,但是如果我的问题写得不好,我会道歉。

0 个答案:

没有答案