'TraceEvents'未定义;假设extern返回int

时间:2013-10-07 17:52:29

标签: c++ c visual-studio-2012 msbuild driver

我正在尝试将现有的using makefile驱动程序代码转换为visual studio 2013 with MSBUILD

我已经包含了所有的头文件和源代码。该项目创建为KMDF driver

我启用了WPP tracing,并插入了我们使用的3个参数

-km (in trace kernel-mode components --> Yes (-km) )  

-func (in functions to generate trace messages --> TraceEvents(LEVEL,FLAGS,MSG,...))  

-gen (in specify template file --> {km-WdfDefault.tpl}*.tmh)

当我构建项目时,错误返回为:

'TraceEvents' undefined; assuming extern returning int
'DBG_PNP' : undeclared identifier

我不确定为什么会这样。 我想我错过了一些步骤。 请指导我可能错过的内容。

2 个答案:

答案 0 :(得分:2)

尝试启动一个新项目并选择“Visual C ++” - > “Windows驱动程序” - > “USB” - > “内核模式驱动程序,USB(KMDF)。此驱动程序已设置WPP跟踪并开箱即用。

您应该特别注意项目中包含的Trace.h文件和底部的注释块;我知道省略这个问题我们遇到了问题。

评论栏看起来像这样:

// This comment block is scanned by the trace preprocessor to define our
// Trace function.
//
// begin_wpp config
// FUNC Trace{FLAG=MYDRIVER_ALL_INFO}(LEVEL, MSG, ...);
// FUNC TraceEvents(LEVEL, FLAGS, MSG, ...);
// end_wpp

答案 1 :(得分:2)

我在Visual Studio 2015中遇到了我的驱动程序这个问题。添加了如何修复它而无需创建新项目。

Project Properties中,导航至Wpp Tracing

  1. General部分中,将Run Wpp Tracing的值设为Yes

  2. Search and Formatting部分中,指定Function To Generate Trace MessagesTraceEvents(LEVEL,FLAGS,MSG,...)

  3. File Options部分,将Scan Configuration Data设为trace.h

  4. 那应该解决它。