TraceMessage - это функция WinAPI с переменным числом аргументов. Это функция трассировки с нотацией, аналогичной printf, которая генерирует сообщение трассировки в трассировке Windows. Странная часть здесь в том, что она получает строку формата как часть многоточия, а не как выделенный аргумент.
Можно «переопределить» эту функцию моей собственной функцией, которая затем должна вызвать TraceMessageVa (то же самое, что TraceMessage, только с va_args, а не с многоточием).
Пока все хорошо; но теперь я хочу получить доступ к отслеживаемому сообщению, используя sprintf
-подобную функцию, у которой есть строка формата из многоточия. Таким образом, мне нужно
- получить аргумент форматной строки из многоточия;
- создать новый va_list без первого аргумента.
Есть идеи о том, как это сделать? Решения, специфичные для компилятора Visual Studio, также приемлемы. Спасибо!