source: dev/trunk/abdev/BasicCompiler_Common/include/Linker.h@ 355

Last change on this file since 355 was 355, checked in by dai_9181, 17 years ago

静的領域に初期オブジェクトを配置可能にした

File size: 1.1 KB
Line 
1#pragma once
2
3class Linker
4{
5 NativeCode nativeCode;
6 DataTable dataTable;
7 DWORD imageBase;
8
9public:
10
11 Linker()
12 {
13 }
14
15 const NativeCode &GetNativeCode() const
16 {
17 return nativeCode;
18 }
19
20 const DataTable &GetDataTable() const
21 {
22 return dataTable;
23 }
24
25 void SetImageBase( DWORD imageBase )
26 {
27 this->imageBase = imageBase;
28 }
29
30 // データテーブルスケジュール
31 void ResolveDataTableSchedules( long dataSectionBaseOffset );
32
33 // DLL関数スケジュール
34 void ResolveDllProcSchedules( long codeSectionBaseOffset, long importSectionBaseOffset, long lookupSize, long hintSize );
35
36 // ユーザ定義関数スケジュール
37 void ResolveUserProcSchedules( long codeSectionBaseOffset );
38
39 // グローバル変数スケジュール
40 void ResolveGlobalVarSchedules( long rwSectionBaseOffset );
41
42 // vtblスケジュール
43 void ResolveVtblSchedule( long dataSectionBaseOffset );
44
45 // TypeInfoスケジュール
46 void ResolveTypeInfoSchedule( long dataSectionBaseOffset );
47
48 // リンク
49 void Link( ObjectModule &masterObjectModule );
50
51 // データテーブルをセット
52 void SetDataTable( DataTable &dataTable );
53};
Note: See TracBrowser for help on using the repository browser.