11

在 Visual Studio (2012) 中使用WPPTraceEvents(...)时,每次出现都有一个波浪下划线,帮助文本例如

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

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

4

3 回答 3

5

现在我通过放置来解决这个问题

#ifdef __INTELLISENSE__
#undef TraceEvents
#define TraceEvents(a,b,...)
#endif

无论如何,在所有文件中包含在 .tmh 之后的头文件之一中。
该定义在http://blogs.msdn.com/b/vcblog/archive/2011/03/29/10146895.aspx__INTELLISENSE__中提到

于 2014-04-11T13:07:24.367 回答
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文件存在),执行Project → Rescan Solution命令。

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

  1. 打开工具 → 选项... → 文本编辑器 → 文件扩展名
  2. 将扩展tmh与编辑器Microsoft Visual C++关联
于 2014-04-11T02:07:49.117 回答
3

关掉Live Semantic Errors输入Options->Text Editor->C/C++ -> Advanced...

于 2013-02-26T14:55:27.210 回答