我知道我必须和我的项目一起分发C / C ++运行时库。我只是想知道微软为什么不为我们这样做?我知道Windows中包含Visual Studio 6.0运行时,但为什么没有新的运行时?
如果有人能给我一些解释性文章的链接。我试图google一段时间没有成功。
答案 0 :(得分:1)
Windows中包含C运行时msvcrt.dll
。 MinGW gcc变体使用该库作为其基本运行时。 Microsoft还构建链接到该运行时的程序(例如,作为Windows安装的一部分的程序)。
虽然作为Windows一部分的msvcrt.dll
与VC6中的运行时DLL具有相同的名称,但它不一定是VC6运行时。每个新版本的Windows都为msvcrt.dll
添加了功能,可能修复了一些错误。
WDK过去常常包含链接到msvcrt.dll
的构建配置(看起来支持WDK的最后一个版本是WDK 7.1)。这些构建配置还包括一些兼容性填充程序,例如msvcrt_win2003.obj
,它们允许使用此类配置构建的程序针对旧版Windows中包含的msvcrt.dll
库运行 - 添加对较新的异常处理和例如,一些较新的API。
我怀疑MS有多种原因希望第三方程序链接到不属于Windows系统文件的运行时。有几个可能的原因:
msvcrt.dll
的Windows更新破坏。