混合程序集的库支持

对于使用 /clr(公共语言运行时编译) 编译的应用程序,Visual C++ 支持使用 C++ 标准库、C 运行时库 (CRT)、ATL 和 MFC。 这允许使用这些库的现有应用程序也可以使用 .NET Framework 功能。

重要

“/clr:pure”和“/clr:safe”编译器选项在 Visual Studio 2015 中已弃用,并且在 Visual Studio 2017 中不受支持

这种支持包括以下 DLL 和导入库:

  • 如果使用 /clr 编译,则为 Msvcmrt[d].lib。 混合程序集链接到此导入库。

此支持提供了多个相关优势:

  • CRT 和 C++ 标准库可用于混合代码。 提供的 CRT 和 C++ 标准库是不可验证的;最终,你的调用仍会路由到与你在本机代码中使用的相同的 CRT 和 C++ 标准库。

  • 更正混合映像中的统一异常处理。

  • 混合映像中 C++ 变量的静态初始化。

  • 支持托管代码中的 per-AppDomain 和 per-process 变量。

  • 解决了应用于在 Visual Studio 2003 及更早版本中编译的混合 DLL 的加载程序锁定问题。

此外,此支持还存在以下限制:

  • 使用 /clr 编译的代码仅支持 CRT DLL 模型。 没有支持 /clr 生成的静态 CRT 库

另请参阅