TraceMessage是一个具有可变数量参数的 WinAPI 函数。它是一个跟踪函数,符号类似于 printf,在 Windows 跟踪中生成跟踪消息。这里奇怪的部分是它接收格式字符串作为省略号的一部分,而不是作为专用参数。可以用我自己的函数“覆盖”这个函数,然后需要调用TraceMessageVa(与 TraceMessage 相同,只是使用 va_args 而不是省略号)。
到现在为止还挺好; 但现在我想使用类似sprintf
函数访问跟踪的消息,该函数具有省略号之外的格式字符串。因此我需要
- 从省略号中获取格式字符串参数;
- 创建一个没有第一个参数的新 va_list。
关于如何做到这一点的任何想法?特定于 Visual Studio 编译器的解决方案也是可以接受的。谢谢!