“使用-D_SCL_SECURE_NO_WARNINGS”是啥意思?
Posted
技术标签:
【中文标题】“使用-D_SCL_SECURE_NO_WARNINGS”是啥意思?【英文标题】:What does "use -D_SCL_SECURE_NO_WARNINGS" mean?“使用-D_SCL_SECURE_NO_WARNINGS”是什么意思? 【发布时间】:2014-07-30 20:59:50 【问题描述】:我在尝试编译曲线压缩程序时出错,错误号 C4996,带参数的函数调用可能不安全。它告诉我使用上述内容。错误来自 xutility 头文件,我以前从未见过它。这是我必须输入控制台的标志吗?网上几乎没有提到它...
【问题讨论】:
这是一个宏定义。 谢谢!奇怪,我真的把它复制并粘贴到谷歌上,没有结果。对不起... “网上几乎没有提到它......” - 你在谷歌上搜索过-D_SCL_SECURE_NO_WARNINGS
吗?如果是这样,这就解释了为什么你什么也没找到。您没有指定任何搜索词,您只是指定它们必须不包含D_SCL_SECURE_NO_WARNINGS
。这就是-
通常对 Google 的意义。删除-
或将整个内容放在引号中,您将获得大量结果。
啊,好吧,有道理...
【参考方案1】:
-D 是一个命令行编译器标志,它使其余文本被视为代码中存在#define。
在解决方案资源管理器中,右键单击项目,选择“属性”。项目属性页面将打开。展开左侧树中的“>C/C++”条目并在其下选择“预处理器”。右窗格中的顶部条目应该是“预处理器定义”。在该编辑框中,添加 _SCL_SECURE_NO_WARNINGS,用 ;
将其与其他条目分开【讨论】:
【参考方案2】:如果你想使用,我还想补充一下
#define _SCL_SECURE_NO_WARNINGS
直接在您的代码中,您必须在包含标题之前放置它。或者你可以使用
#pragma warning(disable:4996)
【讨论】:
【参考方案3】:-D
表示“定义一个宏”,在本例中为_SCL_SECURE_NO_WARNINGS
。这意味着在代码的某个地方有一个
#if defined(_SCL_SECURE_NO_WARNINGS)
线。如果您想从 VS 内部执行此操作,请转到项目的属性页面,在一个选项卡下应该有一个添加新定义的位置。应该已经列出了一些(例如DEBUG
)。在此处添加_SCL_SECURE_NO_WARNINGS
。
【讨论】:
【参考方案4】:-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/
【讨论】:
以上是关于“使用-D_SCL_SECURE_NO_WARNINGS”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章