Visual C ++动态运行时库现在是Windows操作系统的一部分吗?

时间:2013-04-03 15:10:58

标签: c++ windows visual-studio visual-c++ msvcrt

现在,Visual C ++的动态运行时库(更具体地说是2008)是Windows操作系统的一部分吗?我注意到,至少在Windows 8上,您不再需要随应用程序一起提供这些内容,或让用户安装Microsoft的可再发行软件包。

这是真的吗?如果是这样,那么适用于哪些Windows版本以及适用于哪些版本的Visual C ++?

2 个答案:

答案 0 :(得分:6)

不,他们从未成为Windows发行版的一部分。自己部署它们是一项艰难的要求。

它们似乎似乎。从system32目录中的msvcrt.dll开始,它与VS2002之前的Visual Studio版本(VS6及更早版本)中的C ++运行时dll具有相同的名称。但它是Windows可执行文件使用的CRT的私有副本。并受Windows中文件系统保护功能的保护,防止旧安装程序破坏操作系统。

这当然经常是偶然的。有许多程序需要Microsoft CRT,因此用户在安装DLL之前运行安装程序的可能性不大。很明显,你不能依赖那个常见的事故。

对于Windows 8,预安装的Microsoft.VCLibs.110软件包与用C ++编写的Store应用程序所需的软件包相匹配。但出于与上述相同的原因,Microsoft Store程序也是使用VS2012构建的,就像你的一样。即将到来的VS2013会发生什么事情现在有点混乱,我们很快就会知道。

答案 1 :(得分:1)

在我看来,答案是:是和否。

  • :更新的Windows操作系统通常附带预先安装的VC运行时(以及更新版本的.NET框架)。这是因为Microsoft在向公众(甚至是MSDN订阅者)发布VS之前使用最新/更新的Visual Studio。如果不是这样,无论何时安装某个应用程序(遗留应用程序或某些下载的应用程序),安装程序都会安装所需的VC ++运行时。另一种方法是通过自动更新。
  • :如果上述规则均不适用。或者,当VC运行时附带新的Service Pack或补丁时。您可能已经使用较新的补丁/ SP开发了应用程序,并且必须安装(当然,并排)。