TraceMessageは、可変数の引数を持つ WinAPI 関数です。これは、Windows トレースでトレース メッセージを生成する、printf に似た表記のトレース関数です。ここで奇妙なのは、専用の引数としてではなく、省略記号の一部としてフォーマット文字列を受け取ることです。この関数を独自の関数で「オーバーライド」することができます。この関数は、TraceMessageVaを呼び出す必要があります(TraceMessage と同じで、省略記号ではなく va_args を使用するだけです)。
ここまでは順調ですね; sprintf
しかし今、私は、省略記号からフォーマット文字列を持っているような関数を使用して、トレースされたメッセージにアクセスしたいと考えています。したがって
、省略記号からフォーマット文字列引数を取得する必要があります。
- 最初の引数なしで新しい va_list を作成します。
それをどのように行うかについて何か考えはありますか?Visual Studio コンパイラに固有のソリューションも受け入れられます。ありがとう!