UCRT ,MSVCRT ,MSVCRT 运行时的区别?


UCRT(Universal CRT)运行时和 MSVCRT(Microsoft Visual C++ Runtime)运行时是两种不同的运行库,它们都是用于支持在 Windows 上运行使用 Visual C++ 开发的应用程序。它们之间的主要区别如下:

  1. UCRT(Universal C Runtime):

    • UCRT 是 Visual Studio 2015 及以后版本引入的一种新的 C 运行时。
    • 它是一种跨版本的、标准的 C 运行时库。
    • UCRT 将核心 CRT 功能(比如标准输入输出、字符串处理、时间日期处理等)标准化,并与操作系统分开,使得其可通过 Windows Update 更新。
    • UCRT 提供了更好的跨版本兼容性和维护性。
  2. MSVCRT(Microsoft Visual C++ Runtime):

    • MSVCRT 指的是 Visual Studio 2015 之前版本的 Visual C++ 特有的运行时库。
    • 每个版本的 Visual Studio 都有自己的运行时版本,比如 MSVCR110.dll 是 Visual Studio 2012 的 C 运行时。
    • MSVCRT 版本众多,不同版本的应用程序可能需要不同版本的 MSVCRT。
    • MSVCRT 通常与应用程序一起分发,因为不同版本之间可能不兼容。

区别总结:

  • UCRT 是一种更现代、标准化的运行时库,它提供了跨 Visual Studio 版本的统一接口。
  • MSVCRT 是较旧的运行时库,每个 Visual Studio 版本都有其特定版本,可能存在兼容性问题。
  • 随着时间的推移,UCRT 被设计为取代旧的 MSVCRT,以提供更一致和可靠的运行时环境。