3
TraceMessage是一個具有可變參數數量的WinAPI函數。它是一個跟蹤函數,其標記類似於printf,它在Windows跟蹤中生成跟蹤消息。這裏奇怪的部分是它接收到一個格式字符串作爲省略號的一部分,而不是專用的參數。 可以用我自己的函數'覆蓋'這個函數,然後需要調用TraceMessageVa(與TraceMessage相同,只是用va_args而不是省略號)。需要省略號和va_args技巧
到目前爲止這麼好;但是現在我想用類似sprintf
的函數訪問跟蹤的消息,該函數的格式字符串不在省略號中。因此我需要
- 從省略號中獲取格式字符串參數;
- 創建一個沒有第一個參數的新va_list。
任何想法如何做到這一點?特定於Visual Studio編譯器的解決方案也是可接受的。謝謝!
TraceMessage的文檔並沒有說它按照你所說的做了。 – 2011-04-23 09:35:43
這是正確的,但你應該相信我,或者只是把它當作一個關於省略號和va_args的問題,不管跟蹤上下文是什麼...... – 2011-04-23 10:29:44