如何摆脱WPP TraceEvent宏的警告波形?

时间:2012-11-19 10:56:19

标签: visual-studio visual-studio-2012 intellisense wdk

在Visual Studio(2012)中使用WPP时,TraceEvents(...)的每个出现都有一个波浪下划线,帮助文本就是这样。

#define TraceEvents WPP_(CALL)
error: identifier WPP_Call_Foo_cppNNN not defined

嗯,它是在WPP预处理器创建的.tmh头文件中定义的,项目编译得很好。但Visual Studio不会扫描和/或识别此文件 是否有摆脱那些波浪的实用方法?

3 个答案:

答案 0 :(得分:4)

编辑Visual Studio 2012:

您似乎已达到Visual Studio 2012的IntelliSense引擎中预处理器的分析限制。如果您将TraceEvents引用替换为WPP_Call_Foo_cppNNN,它实际上会解析标识符(直到您重建解决方案并且 tmh 标题更改)。

解决方案是在Visual Studio 2013中加载解决方案,并选择升级编译器工具链,从而保持与Visual Studio 2012的向后兼容性。


Visual Studio 2013的上一个答案:

这是在Visual Studio 2013中测试的,因此它可能不适用于Visual Studio 2012.我找不到支持Visual Studio 2012的WDK版本,因此您需要让我知道如何配置环境,如果以下步骤不起作用。

构建项目后(为确保存在 .tmh 文件),执行项目→重新扫描解决方案命令。

我还建议您通过以下步骤将文件与C ++编辑器关联:

  1. 打开工具→选项...→文本编辑器→文件扩展名
  2. 将扩展程序 tmh 与编辑器 Microsoft Visual C ++
  3. 相关联

答案 1 :(得分:4)

现在我通过添加

解决问题
#ifdef __INTELLISENSE__
#undef TraceEvents
#define TraceEvents(a,b,...)
#endif
无论如何,

在所有文件中包含在.tmh之后的一个头文件中 http://blogs.msdn.com/b/vcblog/archive/2011/03/29/10146895.aspx

中提到了定义__INTELLISENSE__

答案 2 :(得分:3)

关闭Live Semantic Errors中的Options->Text Editor->C/C++ -> Advanced ...