Artifact Content

Not logged in

Artifact c970fd44dc7139a9669f9ab8022d3c6e9991efd4


     1  //--- K.I.LIB ---
     2  // kl_app.h : application class for K.I.LIB
     3  
     4  #include "stdafx.h"
     5  #include "kilib.h"
     6  
     7  //------------ 唯一のアプリケーションオブジェクトの管理 ------------//
     8  
     9  kiApp* kiApp::st_pApp = NULL;
    10  
    11  kiApp* app()
    12  {
    13  	return kiApp::st_pApp;
    14  }
    15  
    16  //-------------------- スタートアップコード ------------------------//
    17  
    18  void kilib_startUp()
    19  {
    20  	// 英語ロケールテスト用
    21  	//::SetThreadUILanguage(0x0409);
    22  
    23  	//-- K.I.LIB 初期化
    24  	kiStr::init();
    25  	kiWindow::init();
    26  
    27  	//-- キーボード状態クリア
    28  	::GetAsyncKeyState( VK_SHIFT );
    29  
    30  	//-- アプリケーションインスタンスを作成
    31  	kilib_create_new_app();
    32  	if( app() )
    33  	{
    34  		// コマンドライン分割
    35  		kiCmdParser cmd( ::GetCommandLine(), true );
    36  
    37  		// 実行
    38  		app()->run( cmd );
    39  	}
    40  
    41  	//-- K.I.LIB 終了
    42  	kiWindow::finish();
    43  
    44  	delete app();
    45  	::ExitProcess( 0 );
    46  }
    47  
    48  //--------------- C-Runtime初期化コード削除周りの処理 ---------------//
    49  
    50  #if 0
    51  
    52  int APIENTRY WinMain( HINSTANCE, HINSTANCE, char*, int )
    53  {
    54  	kilib_startUp();
    55  	return 0;
    56  }
    57  
    58  #else
    59  
    60  void* operator new( size_t siz )
    61  {
    62  	return (void*)::GlobalAlloc( GMEM_FIXED, siz );
    63  }
    64  
    65  void operator delete( void* ptr )
    66  {
    67  	::GlobalFree( (HGLOBAL)ptr );
    68  }
    69  
    70  void main()
    71  {
    72  	// main がないと何故か libc.lib がリンクエラーになるのでダミー
    73  }
    74  
    75  #endif
    76  
    77  //--------------------------------------------------------------//