Обычно в Delphi объявляется функция с переменным числом аргументов с использованием метода "array of const". Однако для совместимости с кодом, написанным на C, существует очень неизвестная директива "varargs", которая может быть добавлена в объявление функции (я узнал об этом при чтении Rudy excellent " Ловушки конвертирования.)
В качестве примера можно было бы иметь функцию в C, объявленную следующим образом:
void printf(const char *fmt, ...)
В Delphi это станет следующим:
procedure printf(const fmt: PChar); varargs;
Мой вопрос: как я могу добраться до содержимого стека при реализации метода, который определяется директивой 'varargs'?
Я ожидал бы, что для этого существует какая-то оснастка, такая как Dephi-переводы функций va_start(), va_arg() и va_end(), но я ничего не могу найти.
Пожалуйста, помогите!
PS: Пожалуйста, не дрейфовать в дискуссиях о "почему" или альтернативе "array of const" - мне нужно это, чтобы писать C-подобные исправления для функций внутри игр Xbox (см. проект эмулятора Delphi Xbox "Dxbx 'on sourceforge для деталей).