与MSVCR DLL有什么关系?

时间:2013-08-31 12:13:05

标签: windows dll

它的用途是什么?

为什么他们的各种版本呢?有哪些版本以及它们各自匹配的版本?

为什么它似乎会导致许可证问题? E.G:我有些像py2exe这样的工具无法捆绑它们但是你仍然需要它们来运行生成的exe。

如果要为Windows分发软件,如何解决这个问题:

  • 技术上:如何确保用户有一个?如果不是如何提供一个?对于所有版本的Windows。
  • 合法:自由软件的功能是否相同?对于盈利软件?是否有特定的事情要做?

2 个答案:

答案 0 :(得分:5)

Windows可执行文件使用的是C运行时。它们是用C或C ++编写的,因此它们像任何C或C ++程序一样具有C运行时要求。

它是一个私有DLL,仅由Windows可执行文件 使用。你不能分发它或覆盖它,这将是灾难性的。该DLL受Windows文件系统保护功能的保护,覆盖它将使其再次自动恢复该文件。

您不应该依赖它,Microsoft没有义务在Windows版本之间保持兼容。然而,这确实没有减慢MinGW项目的速度,他们无论如何都使用它。或者,如果您使用非常旧版本的Visual Studio,其CRT也使用该名称,这可能是一个问题,15岁版本6的问题.YMMV如果您最终依赖它。

答案 1 :(得分:0)

这是Microsoft Visual C ++运行时。它们与编译器版本匹配。

您可以静态链接它,这会删除依赖项。您的安装可以检测您的用户是否需要它。