链接选项
CRT lib 目录包括几个无需任何代码更改就能启用特定 CRT 功能的小型对象文件。 这些对象文件被称为“链接选项”,因为你只需将它们添加到链接器命令行就能使用。
这些对象的 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 |
启用命令行参数通配符扩展。 请参阅扩展通配符参数。 |