禁用CPP中部分代码的代码分析(VS 2013)

Posted

技术标签:

【中文标题】禁用CPP中部分代码的代码分析(VS 2013)【英文标题】:Disable Code Analysis for a part of code in CPP(VS 2013) 【发布时间】:2016-04-29 21:04:23 【问题描述】:

我想为 CPP 文件禁用代码分析。有一种方法可以排除头文件。

https://msdn.microsoft.com/en-us/library/zyhb0b82(v=vs.100).aspx

#include <codeanalysis\warnings.h>
#pragma warning( push )
#pragma warning ( disable : ALL_CODE_ANALYSIS_WARNINGS )
    #include <third-party include files here>
#pragma warning( pop )

我想禁用 CPP 文件。有人可以帮我吗,如果有办法做到这一点。

谢谢 桑蒂

【问题讨论】:

我希望您以同样的方式进行操作...只需将 pragma 推到源文件的顶部即可。 我试过了,没用。当代码分析运行时,我看到有一个错误。所以我想为 CPP 文件禁用 CL。 disasm.cpp ..\external\Detours\src\disasm.cpp(633):致命错误 C1001:编译器发生内部错误。 (编译器文件“msc1ast.cpp”,第 1325 行)“C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64\CL.exe”中的内部编译器错误 【参考方案1】:

我知道这是一个非常古老的线程 - 但我最近遇到了几乎类似的需求(禁用部分源代码的代码分析)。 至少在 VisualStudio-2019 中,符号 CODE_ANALYSIS 似乎是在分析运行时定义的。

希望您可以使用简单的预处理器指令解决您的错误:

#ifndef CODE_ANALYSIS
#  include <third-party include files here>
#endif

我必须承认,我不确定 CL 命令行上的附加 /DCODE_ANALYSIS 是“本机”还是来自我的插件之一。

【讨论】:

这有什么帮助?代码分析仍然需要代码编译。因此,如果编译代码需要第三方头文件,您将得到的只是更多错误,而不是烦人的警告。

以上是关于禁用CPP中部分代码的代码分析(VS 2013)的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | 查找 DexFile 对应的C代码 | dalvik_system_DexFile.cpp 分析 )(代

在 vs2013 中禁用 c++11 功能

Android 逆向整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | RawDexFile.cpp 分析 | dvmRawDexFileOpen函数读取 DEX 文件 )(代

vs2013打开的cpp文件如何编译

VSCode 如何禁用某些格式的代码错误检查(红色波浪线)?

通过 Devenv 命令行构建时禁用代码分析