Como uma função com 'varargs' recupera o conteúdo da pilha?

Normalmente, no Delphi, seria declarada uma função com um número variável de argumentos usando o método 'array of const'. No entanto, para compatibilidade com o código escrito em C, há uma diretiva 'varargs' muito desconhecida que pode ser adicionada a uma declaração de função (eu aprendi isso ao ler o excelente de Rudy 'Armadilhas da conversão'documento).

Como exemplo, alguém poderia ter uma função em C, declarada assim:

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

Em Delphi, isso se tornaria:

procedure printf(const fmt: PChar); varargs;

Minha pergunta é: como obter o conteúdo da pilha ao implementar um método definido com a diretiva 'varargs'?

Eu esperaria que existissem algumas ferramentas para isso, como traduções do Dephi das funções va_start (), va_arg () e va_end (), mas não consigo encontrá-las em nenhum lugar.

Por favor ajude!

PS: Por favor, não divirta-se nas discussões sobre a alternativa 'por que' ou a 'matriz de const' - eu preciso disso para escrever patches semelhantes a C para funções dentro dos jogos do Xbox (consulte o projeto emulador Delphi para Xbox 'Dxbx' no sourceforge para detalhes).

questionAnswers(3)

yourAnswerToTheQuestion