¿Cómo puede una función con 'varargs' recuperar el contenido de la pila?

Normalmente, en Delphi se declararía una función con un número variable de argumentos utilizando el método 'array of const'. Sin embargo, para la compatibilidad con el código escrito en C, hay una directiva 'varargs' muy desconocida que se puede agregar a una declaración de función (aprendí esto mientras leía el excelente 'de Rudy'Las trampas de la convergencia'documento).

Como ejemplo, uno podría tener una función en C, declarada así:

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

En Delphi, esto se convertiría en:

procedure printf(const fmt: PChar); varargs;

Mi pregunta es: ¿cómo puedo llegar al contenido de la pila al implementar un método que se define con la directiva 'varargs'?

Esperaría que existan algunas herramientas para esto, como las traducciones de Dephi de las funciones va_start (), va_arg () y va_end (), pero no puedo encontrar esto en ningún lado.

¡Por favor ayuda!

PD: Por favor, no se distraiga en las discusiones sobre el 'por qué' o la alternativa de 'matriz de constantes'. Necesito esto para escribir parches tipo C para funciones dentro de los juegos de Xbox (consulte el proyecto del emulador Delphi Xbox 'Dxbx' en sourceforge para detalles).

Respuestas a la pregunta(3)

Su respuesta a la pregunta