Как функция с 'varargs' может извлечь содержимое стека?

Обычно в Delphi можно было бы объявить функцию с переменным числом аргументов, используя метод «массив констант». Тем не менее, для совместимости с кодом, написанным на C, есть очень неизвестная директива varargs, которую можно добавить к объявлению функции (я узнал об этом, читая отлично Руди)Подводные камни конверсии'документ).

Как пример, можно было бы иметь функцию в C, объявленную как это:

void printf(const char *fmt, ...)

В Delphi это станет:

procedure printf(const fmt: PChar); varargs;

Мой вопрос: как я могу получить содержимое стека при реализации метода, который определен с помощью директивы varargs?

Я ожидаю, что для этого есть какой-то инструментарий, например, переводы Dephi функций va_start (), va_arg () и va_end (), но я не могу найти это нигде.

Пожалуйста помоги!

PS: Пожалуйста, не отвлекайтесь на дискуссии об альтернативе «почему» или «массив констант» - мне нужно это для написания патчей типа C для функций в играх Xbox (см. Проект эмулятора Delphi Xbox 'Dxbx' на sourceforge) для деталей).

Ответы на вопрос(3)

Ваш ответ на вопрос