5128eecc9f 2011-02-23 kinaba: //--- K.I.LIB --- 5128eecc9f 2011-02-23 kinaba: // kl_app.h : application class for K.I.LIB 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: #include "stdafx.h" 5128eecc9f 2011-02-23 kinaba: #include "kilib.h" 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: //------------ 唯一のアプリケーションオブジェクトの管理 ------------// 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: kiApp* kiApp::st_pApp = NULL; 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: kiApp* app() 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: return kiApp::st_pApp; 5128eecc9f 2011-02-23 kinaba: } 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: //-------------------- スタートアップコード ------------------------// 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: void kilib_startUp() 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: //-- K.I.LIB 初期化 5128eecc9f 2011-02-23 kinaba: kiStr::init(); 5128eecc9f 2011-02-23 kinaba: kiWindow::init(); 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: //-- キーボード状態クリア 5128eecc9f 2011-02-23 kinaba: ::GetAsyncKeyState( VK_SHIFT ); 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: //-- アプリケーションインスタンスを作成 5128eecc9f 2011-02-23 kinaba: kilib_create_new_app(); 5128eecc9f 2011-02-23 kinaba: if( app() ) 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: // コマンドライン分割 5128eecc9f 2011-02-23 kinaba: kiCmdParser cmd( ::GetCommandLine(), true ); 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // 実行 5128eecc9f 2011-02-23 kinaba: app()->run( cmd ); 5128eecc9f 2011-02-23 kinaba: } 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: //-- K.I.LIB 終了 5128eecc9f 2011-02-23 kinaba: kiWindow::finish(); 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: delete app(); 5128eecc9f 2011-02-23 kinaba: ::ExitProcess( 0 ); 5128eecc9f 2011-02-23 kinaba: } 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: //--------------- C-Runtime初期化コード削除周りの処理 ---------------// 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: #if 1 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: int APIENTRY WinMain( HINSTANCE, HINSTANCE, char*, int ) 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: kilib_startUp(); 5128eecc9f 2011-02-23 kinaba: return 0; 5128eecc9f 2011-02-23 kinaba: } 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: #else 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: void* operator new( size_t siz ) 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: return (void*)::GlobalAlloc( GMEM_FIXED, siz ); 5128eecc9f 2011-02-23 kinaba: } 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: void operator delete( void* ptr ) 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: ::GlobalFree( (HGLOBAL)ptr ); 5128eecc9f 2011-02-23 kinaba: } 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: void main() 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: // main がないと何故か libc.lib がリンクエラーになるのでダミー 5128eecc9f 2011-02-23 kinaba: } 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: #endif 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: //--------------------------------------------------------------//