任意の数の変数を・・・

[戻る]
かずは 2001/03/23(金) 09:49:53
はじめまして,一葉と申します。
少し分からない事があったので質問したいのですが。

関数に任意の数の変数を持っていきたいのですが、どうしたらいいのでしょうか?

void    prin( int x, int y, char *comment, /* ここに任意の変数を持ってきたい */ ){

    char    comments[30]; 
    wsprintf( comments, comment, /* ここに任意の変数を持ってきたい */ );   // メッセージ作成
    Tex( x, y, comments );                                        // 表示に転送

}

void    Tex( int x, int y, char *comment ){

    HDC        hdc;                           // 宣言
    lpDDSBack->GetDC(&hdc);              // 取得
    TextOut(hdc, x, y, comment, lstrlen(comment) ); // 表示
    lpDDSBack->ReleaseDC(hdc);                       // 解放

}

// 使用法は
// prin( 座標X, 座標Y, "%d文字列%d", d1, d2 );//だったり
// prin( 座標X, 座標Y, "文字列%d", d1 );

こんな感じにしたいのですが・・・・

ku 2001/03/23(金) 11:25:26
UNICODEを使って無ければ、こんな感じで良いのでは?

#if !defined(_countof)
#define _countof(array) (sizeof(array)/sizeof(array[0]))
#endif
void __cdecl prin(int x, int y, char *comment, ...)
{
    va_list args;
    va_start(args, comment);
    char szBuffer[1000];
    _vsnprintf(szBuffer, _countof(szBuffer), comment, args);
    va_end(args);
    Tex(x, y, comment);
}

かずは 2001/03/25(日) 08:54:05
[[解決]]
ku様ありがとうございます。
おかげさまで解決する事が出来ました。

古いスレッドには追加発言できません。