int PASCAL WinMain(HINSTANCE this_inst, HINSTANCE prev_inst, LPSTR cmdline, int cmdshow) { RSetFunction(RF_CREATE , OnCreate); RSetFunction(RF_RENDER , OnRender); RSetFunction(RF_UPDATE , OnUpdate); RSetFunction(RF_DESTROY , OnDestroy); RSetFunction(RF_INVALIDATE, OnInvalidate); RSetFunction(RF_RESTORE, OnRestore); return RMain(APPLICATION_NAME,this_inst,prev_inst,cmdline,cmdshow,&g_ModeParams,WndProc,NULL); }
// STEP1 int WINAPI WinMain(HINSTANCE this_inst, HINSTANCE prev_inst, LPSTR cmdline, int cmdshow) { _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); InitLog(CCLOGSTYLE_DEBUGSTRING|CCLOGSTYLE_FILE); g_dwMainThreadID= GetCurrentThreadId(); char szModuleFileName[_MAX_DIR] = {0,}; GetModuleFileName(NULL, szModuleFileName, _MAX_DIR); PathRemoveFileSpec(szModuleFileName); SetCurrentDirectory(szModuleFileName); cclog("-------------------------------------------------------------\n"); cclog("Current working directory: %s\n", szModuleFileName); cclog("-------------------------------------------------------------\n"); srand( (unsigned)time( NULL )); cclog("GUNZ " STRFILEVER " launched. build ("__DATE__" "__TIME__") \n"); char szDateRun[128]=""; char szTimeRun[128]=""; _strdate( szDateRun ); _strtime( szTimeRun ); cclog("Log time (%s %s)\n", szDateRun, szTimeRun); CCSysInfoLog(); g_App.InitFileSystem(); ZGetConfiguration()->Load(); ZStringResManager::MakeInstance(); if( !ZApplication::GetInstance()->InitLocale() ) { CCLog("Locale Init error !!!\n"); return false; } DWORD ver_major = 0; DWORD ver_minor = 0; TCHAR ver_letter = ' '; if(CheckFont()==false) { CCLog("CheckFont() failed.\n"); return 0; } RSetFunction(RF_CREATE , OnCreate); RSetFunction(RF_RENDER , OnRender); RSetFunction(RF_UPDATE , OnUpdate); RSetFunction(RF_DESTROY , OnDestroy); RSetFunction(RF_INVALIDATE, OnInvalidate); RSetFunction(RF_RESTORE, OnRestore); RSetFunction(RF_ACTIVATE, OnActivate); RSetFunction(RF_DEACTIVATE, OnDeActivate); RSetFunction(RF_ERROR, OnError); SetModeParams(); // STEP2 cclog("Entering RMain()\n"); const int nRMainReturn = RMain(APPLICATION_NAME,this_inst,prev_inst,cmdline,cmdshow,&g_ModeParams,WndProc,IDI_ICON1); if( 0 != nRMainReturn ) return nRMainReturn; if( 0 != RInitD3D(&g_ModeParams) ) { MessageBox(g_hWnd, "fail to initialize DirectX", NULL, MB_OK); cclog( "error init RInitD3D\n" ); return 0; } cclog("Entering RRun()\n"); const int nRRunReturn = RRun(); ShowWindow(g_hWnd, SW_MINIMIZE); cclog("========================== DONE ===============================\n"); ZStringResManager::FreeInstance(); return 0;//nRRunReturn; }