CRT lib 目录包含多个小型对象文件,这些文件支持特定的 CRT 功能,而无需更改代码。 这些对象文件称为“链接选项”,因为只需将它们添加到链接器命令行才能使用这些选项。 若要从 Visual Studio 执行此操作,请在解决方案资源管理器中右键单击项目并选择 属性。 在 配置属性下,选择 链接器>输入>其他依赖项,并指定要添加到链接命令行的其他项。
这些对象的 CLR 纯模式版本在 Visual Studio 2015 中已弃用并在 Visual Studio 2017 中不受支持。 对本机和 /clr 代码使用常规版本。
| 本机和 /clr | 纯模式 | 说明 | 
|---|---|---|
| binmode.obj | pbinmode.obj | 为二进制设置默认文件转换模式。 请参阅 _fmode。 | 
| chkstk.obj | 不适用 | 在未使用 CRT 时提供堆栈检查和分配支持。 | 
| commode.obj | pcommode.obj | 设置用于“提交”的全局提交标志。 请参阅 fopen、_wfopen和fopen_s、_wfopen_s。 | 
| exe_initialize_mta.lib | 不适用 | 在 EXE 启动期间初始化 MTA 单元,以便在全局智能指针中使用 COM 对象。 此选项在关闭期间会泄漏 MTA 单元引用,所以请不要将其用于 DLL。 链接到此文件等效于包括 combase.h和定义_EXE_INITIALIZE_MTA。 使用此链接选项会将 onecore.lib 添加到默认库列表。 如果不需要此效果(例如使用 onecore_apiset.lib 或其他伞式库),请使用 /NODEFAULTLIB 重写此行为并提供替代方法。 | 
| fp10.obj | 不适用 | 将默认精度控制更改为 64 位。 请参阅数学和浮点支持。 | 
| invalidcontinue.obj | pinvalidcontinue.obj | 设置不执行任何操作的默认无效参数处理程序,这意味着传递到 CRT 函数的无效参数将只会设置 errno 并返回一个错误结果。 | 
| legacy_stdio_float_rounding.obj | 不适用 | 使用 Windows 10 19041 通用 C 运行时打印浮点值(例如,使用 printf时)的问题已得到解决。 它现在正确舍入完全可表示的浮点数,并采用fesetround请求的浮点舍入。 此行为更新在 Visual Studio 2019 版本 16.2 及更高版本中可用。 旧行为用于早期版本的 Visual Studio,或通过提供此链接选项进行使用。 | 
| loosefpmath.obj | 不适用 | 确保浮点代码容忍不正常的值。 | 
| newmode.obj | pnewmode.obj | 导致 malloc在失败时调用新处理程序。 请参阅_set_new_mode、_set_new_handler、calloc和realloc。 | 
| noarg.obj | pnoarg.obj | 禁用所有 argc 和 argv 进程。 | 
| nochkclr.obj | 不适用 | 不执行任何操作。 从项目中删除。 | 
| noenv.obj | pnoenv.obj | 禁止为 CRT 创建缓存环境。 | 
| nothrownew.obj | pnothrownew.obj | 启用 CRT 中新增功能的非引发版本。 请参阅 new 和 delete 运算符。 | 
| setargv.obj | psetargv.obj | 启用命令行参数通配符扩展。 请参阅扩展通配符参数。 | 
| threadlocale.obj | pthreadlocale.obj | 默认情况下,启用所有新线程的每线程区域设置。 | 
| wsetargv.obj | pwsetargv.obj | 启用命令行参数通配符扩展。 请参阅扩展通配符参数。 |