我在尝试编译曲线压缩程序时遇到错误,错误没有C4996,带参数的函数调用可能不安全。它告诉我使用上面的内容。错误来自xutility头文件,我以前从未关注过。这是我必须输入控制台的标志吗?在网上根本没有提到它......
答案 0 :(得分:58)
-D是一个命令行编译器标志,它使文本的其余部分被视为代码中有#define。
在解决方案资源管理器中,右键单击项目,选择"属性"。项目属性页面将打开。展开"> C / C ++"在左侧树中输入并选择"预处理器"在那之下。右侧窗格中的顶部条目应为"预处理器定义"。在该编辑框中,添加 _SCL_SECURE_NO_WARNINGS ,将其与其他条目分开;
答案 1 :(得分:9)
如果您想使用
,我还想补充一下#define _SCL_SECURE_NO_WARNINGS
直接在您的代码中,您必须在包含标头之前放置它。或者你可以使用
#pragma warning(disable:4996)
答案 2 :(得分:4)
-D
表示"定义宏",在本例中为_SCL_SECURE_NO_WARNINGS
。这意味着代码中的某处是
#if defined(_SCL_SECURE_NO_WARNINGS)
线。如果你想从VS内部执行此操作,请转到项目的属性页面,在选项卡下面应该有一个添加新定义的位置。应该已经列出了一些(如DEBUG
)。在那里添加_SCL_SECURE_NO_WARNINGS
。
答案 3 :(得分:0)
-D是编译器标志或宏,就像您在源代码中定义的一样。
-D_SCL_SECURE_NO_WARNINGS定义_SCL_SECURE_NO_WARNINGS宏。
请查看以下链接,以获取有关_SCL_SECURE_NO_WARNINGS宏的更多详细信息。 https://devblogs.microsoft.com/cppblog/why-am-i-getting-these-_scl_secure_no_warnings-messages/