Visual C++ .Netで開発しています。
可変引数を持つ関数hoge(char * szBuf, ...)があります。
hoge内からさらに可変引数を持つサブルーチンhogehoge(int iCnt, ...)をコールします。
hogeに渡された可変引数すべてをそのままhogehogeに渡すにはどのように記述すれば
よいのでしょうか?
ちなみにhoge内では可変引数の個数や型などはわかりません。hogehoge内で判明します。

hoge内でva_list型としてva_arg()で値を取得すればいいかと思い以下のように記述
してみましたが、可変引数の個数が複数になると2個目以上が取得できませんでした。

hoge(char * szBuf, ...)
{
va_listargs, args2;
va_start( args, szBuf );
args2 = (va_list)va_arg( args, va_list );
//中略
hogehoge( iCnt, args2 );
va_end();
}