ErrorLog がどのような実装になっているか分かりませんが、にこよんさんが書かれた定義のままの
マクロと関数で問題なく可変長引数の関数を実装できましたので、よろしければごらんください
エラー情報をファイルに書き出す関数ではなく、文字列を画面に描画する関数となっていますが・・・
#include "DxLib.h"
#include <varargs.h>
#define ERR(str, ...) ErrorLog(str, _T(__FUNCTION__), __LINE__, __VA_ARGS__) //エラー時のマクロ
void ErrorLog(const char *errorMessage, LPCTSTR lpszFuncName, int lineN, ...)
{
int Result ;
va_list VaList ;
char String[ 2048 ] ;
va_start( VaList, lineN ) ;
vsprintf( String, errorMessage, VaList ) ;
DrawString( 0, 0, String, GetColor( 255,255,255 ) ) ;
va_end( VaList ) ;
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode( TRUE ) ;
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
SetDrawScreen( DX_SCREEN_BACK ) ;
int Counter = 0 ;
while( ProcessMessage() == 0 )
{
ClearDrawScreen() ;
ERR( "エラーカウンター:%d", Counter ) ;
Counter ++ ;
ScreenFlip() ;
}
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}