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