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

2024-09-27 02:19:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发嵌入python的应用程序,并将python代码(cpyhon)动态链接到我的库中(希望能够支持多个python版本)。当我加载时pythonXY.dll库(假设它是python27.dll)msvcr90.dll(如果我没弄错的话,是VS2008版本)也将作为依赖项加载。问题是,我现在有两个版本的CRT库加载到进程中(因为我使用的是/MD编译器开关-动态CRT链接):

  • vcruntime140.dll
  • msvcr90.dll

我知道这是一件非常糟糕的事情——在同一个进程中加载多个C运行时。你知道吗

另一方面,如果我使用/MT开关静态链接的CRT,在加载python27.dll时只加载了msvcr90.dll。你知道吗

有人能告诉我这是不是个好主意吗?你知道吗

一般来说,有没有办法解决这种情况——用一个CRT版本构建一个应用程序或模块,可以加载第三方库(pythonXY.dll在我的情况下)使用其他CRT版本的?你知道吗

我在Windows10上使用VS2015作为开发环境。由于项目仍处于开发的早期阶段,我还没有在github上编写任何代码。你知道吗

我对C还不是很有经验,所以如果我的问题写得不好,我很抱歉。你知道吗


Tags: 代码版本应用程序进程链接情况动态md

热门问题