禁用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 分析 )(代
Android 逆向整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | RawDexFile.cpp 分析 | dvmRawDexFileOpen函数读取 DEX 文件 )(代