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