【发布时间】:2011-04-23 09:27:56
【问题描述】:
TraceMessage 是一个参数数量可变的 WinAPI 函数。它是一个跟踪函数,符号类似于 printf,在 Windows 跟踪中生成跟踪消息。这里奇怪的部分是它接收格式字符串作为省略号的一部分,而不是作为专用参数。 可以用我自己的函数“覆盖”这个函数,然后需要调用TraceMessageVa(与 TraceMessage 相同,只是使用 va_args 而不是省略号)。
到目前为止一切顺利;但现在我想使用sprintf-like 函数访问跟踪的消息,该函数具有省略号之外的格式字符串。因此我需要
- 从省略号中获取格式字符串参数;
- 创建一个没有第一个参数的新 va_list。
知道怎么做吗?特定于 Visual Studio 编译器的解决方案也是可以接受的。谢谢!
【问题讨论】:
-
TraceMessage 的文档并没有说它按照你说的做。
-
这是正确的,但你应该相信我,或者只是将其视为关于省略号和 va_args 的问题,无论跟踪上下文如何......
标签: c++ winapi visual-c++ trace etw