VC-基础:隐藏不安全函数的warning-_CRT_SECURE_NO_WARNINGS

本文介绍如何在Visual Studio中消除使用strcpy等不安全函数产生的编译警告,提供了三种有效方法,包括使用pragma指令、预处理器定义和宏定义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1>tmp.cpp(24): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

在编程过程中难免会用到一些过时,或者曾经不安全的函数,如上,这是编译器会出现warning提示用某某新函数,如果不想使用新的函数可以使用一下方法:

1. 使用VS提供的 编译器选择性提供warning功能 link:  上面的警告使用 #pragma warning(disable:4996) 即可消除

2. 使用提示中的_CRT_SECURE_NO_WARNINGS,以下是使用方法:

        a. Project properties->Configuration Properties->C/C++->Preprocessor->Preprocessor Definitions

        b. 点击按钮 (...)

        c. 输入:_CRT_SECURE_NO_WARNINGS。 注:使用 "\n" 相隔

//3.#define _CRT_SECURE_NO_WARNINGS   

//   #include <stdio.h>

转载于:https://www.cnblogs.com/CPYER/p/3381841.html

1>------ 已启动全部重新生成: 项目: SET_OBJ_translucency, 配置: Debug x64 ------ 1>cl : 命令行 warning D9038: 此平台上支持 /ZI;请启用 /Zi 1>cl : 命令行 warning D9007: “/Gm”需要“/Zi”;选项被忽略 1>SET_OBJ_translucency.cpp 1>SET_OBJ_translucency.cpp(80): warning C4996: 'wcstombs': This function or variable may be unsafe. Consider using wcstombs_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1> c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdlib.h(533) : 参见“wcstombs”的声明 1>SET_OBJ_translucency.cpp(83): warning C4996: 'wcstombs': This function or variable may be unsafe. Consider using wcstombs_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1> c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdlib.h(533) : 参见“wcstombs”的声明 1> 正在创建库 F:\Code\CncAutoDrlHole\TRANSLUCENCY60_face\SET_OBJ_translucency\x64\Debug\/SET_OBJ_translucency.lib 和对象 F:\Code\CncAutoDrlHole\TRANSLUCENCY60_face\SET_OBJ_translucency\x64\Debug\/SET_OBJ_translucency.exp 1>SET_OBJ_translucency.obj : error LNK2019: 无法解析的外部符号 __imp_wsprintfW,该符号在函数 "class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > __cdecl GetExeBuildTime(char const *,char const *)" (?GetExeBuildTime@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@PEBD0@Z) 中被引用 1>F:\Code\CncAutoDrlHole\TRANSLUCENCY60_face\SET_OBJ_translucency\x64\Debug\/TRANSLUCENCY60_face.dll : fatal error LNK1120: 1 个无法解析的外部命令 1>已完成生成项目“SET_OBJ_translucency.vcxproj”的操作 - 失败。
最新发布
03-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值