【问题标题】:Differences between msvcrt, ucrt and vcruntime librariesmsvcrt、ucrt 和 vcruntime 库之间的区别
【发布时间】:2021-06-05 11:15:20
【问题描述】:

有人可以解释一下这些之间的区别吗?互联网查找让我感到困惑。

我正在使用 VS2019。

【问题讨论】:

    标签: msvcrt crt


    【解决方案1】:

    MSVCRT 与 UCRT 这是 Microsoft Windows 上 C 标准库的两个变体。

    MSVCRT(Microsoft Visual C++ 运行时)默认在所有 Microsoft Windows 版本上可用,但由于向后兼容性问题一直停留在过去,不兼容 C99 并且缺少一些功能。 p>

    • 它不兼容 C99,例如 printf() 函数系列,但是...
    • mingw-w64 提供替换功能,使 C99 在许多情况下兼容
    • 它不支持 UTF-8 语言环境
    • 与 MSVCRT 链接的二进制文件不应与 UCRT 文件混合,因为内部结构和数据类型不同。相同的规则适用于 MSVC 编译的二进制文件,因为 MSVC 默认使用 UCRT(如果未更改)。
    • 在每个 Microsoft Windows 版本上开箱即用。

    UCRT(通用 C 运行时) 是较新的版本,Microsoft Visual Studio 默认也使用该版本。它应该像使用 MSVC 编译代码一样工作和表现。

    • 在构建时和运行时更好地兼容 MSVC。
    • 默认情况下它仅在 Windows 10 上提供,对于旧版本,您必须自己提供或取决于安装它的用户。

    信用:https://www.msys2.org/docs/environments/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-25
      • 2020-05-10
      • 2014-09-20
      • 2010-10-28
      • 2015-10-04
      • 2012-08-12
      • 2011-02-18
      • 2019-12-21
      相关资源
      最近更新 更多