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 //--------------------------------------------------------------//