相比于相对自由分散的glibc,一直伴随着不同版本的Visual C++发布的MSVC CRT(Microsoft Visual C++ C Runtime)倒看过去更加有序一些。从1992年最初的Visual C++ 1.0版开始,一直到现在的Visual C++ 9.0(又叫做Visual C++ 2008),MSVC CRT也从1.0版发展到了9.0版。
同一个版本的MSVC CRT根据不同的属性提供了多种子版本,以供不同需求的开发者使用。按照静态/动态链接,可以分为静态版和动态版;按照单线程/多线程,可以分为单线程版和多线程版;按照调试/发布,可分为调试版和发布版;按照是否支持C++分为纯C运行库版和支持C++版;按照是否支持托管代码分为支持本地代码/托管代码和纯托管代码版。这些属性很多时候是相互正交的,也就是说它们之间可以相互组合。比如可以有静态单线程纯C纯本地代码调试版;也可以有动态的多线程纯C纯本地代码发布版等。但有些组合是没有的,比如动态链接版本的CRT是没有单线程的,所有的动态链接CRT都是多线程安全的。
联系客服