【问题标题】:'TraceEvents' undefined; assuming extern returning int'TraceEvents' 未定义;假设 extern 返回 int
【发布时间】:2013-10-07 17:52:28
【问题描述】:

我正在尝试将我们现有的驱动程序代码 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

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

【问题讨论】:

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


    【解决方案1】:

    尝试启动一个新项目并选择“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
    

    【讨论】:

    • 这解决了我的问题。但是,由于未知原因,我不得不将所有使用 tmh 文件的文件移动到同一个文件夹中......我不知道为什么,但现在我的项目构建了。应该有办法解决这个问题。我不确定 Wpp Tracing->File Options 下的“输出目录”是否有任何关系。现在,我将它设置为一个空文件夹。
    【解决方案2】:

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

    在您的Project Properties 中,导航至Wpp Tracing

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

    2. Search and Formatting 部分,将Function To Generate Trace Messages 指定为TraceEvents(LEVEL,FLAGS,MSG,...)

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

    这应该可以解决它。

    【讨论】:

      猜你喜欢
      • 2017-08-17
      • 1970-01-01
      • 2014-09-08
      • 1970-01-01
      • 1970-01-01
      • 2013-10-17
      • 1970-01-01
      • 2020-03-16
      • 1970-01-01
      相关资源
      最近更新 更多