+ also write the nonresident name table

git-svn-id: trunk@42630 -
This commit is contained in:
nickysn 2019-08-10 00:03:51 +00:00
parent d1d2f6b701
commit 7bb6b525b1

View File

@ -670,6 +670,7 @@ interface
FCurrExeMetaSec: TNewExeMetaSection;
FResourceTable: TNewExeResourceTable;
FResidentNameTable: TNewExeExportNameTable;
FNonresidentNameTable: TNewExeExportNameTable;
FModuleReferenceTable: TNewExeModuleReferenceTable;
FImportedNameTable: TNewExeImportedNameTable;
FEntryTable: TNewExeEntryTable;
@ -685,6 +686,7 @@ interface
property CurrExeMetaSec: TNewExeMetaSection read FCurrExeMetaSec write FCurrExeMetaSec;
property ResourceTable: TNewExeResourceTable read FResourceTable;
property ResidentNameTable: TNewExeExportNameTable read FResidentNameTable;
property NonresidentNameTable: TNewExeExportNameTable read FNonresidentNameTable;
property ModuleReferenceTable: TNewExeModuleReferenceTable read FModuleReferenceTable;
property ImportedNameTable: TNewExeImportedNameTable read FImportedNameTable;
property EntryTable: TNewExeEntryTable read FEntryTable;
@ -4322,6 +4324,8 @@ cleanup:
Header.ImportedNameTableStart:=Header.ModuleReferenceTableStart+ModuleReferenceTable.Size;
Header.EntryTableOffset:=Header.ImportedNameTableStart+ImportedNameTable.Size;
Header.EntryTableLength:=EntryTable.Size;
Header.NonresidentNameTableStart:=Header.EntryTableOffset+Header.EntryTableLength+Length(Header.MsDosStub);
Header.NonresidentNameTableLength:=NonresidentNameTable.Size;
Header.WriteTo(FWriter);
@ -4333,6 +4337,7 @@ cleanup:
ModuleReferenceTable.WriteTo(FWriter,ImportedNameTable);
ImportedNameTable.WriteTo(FWriter);
EntryTable.WriteTo(FWriter);
NonresidentNameTable.WriteTo(FWriter);
{ todo: write the rest of the file as well }
@ -4494,6 +4499,7 @@ cleanup:
CurrExeMetaSec:=nemsNone;
FResourceTable:=TNewExeResourceTable.Create;
FResidentNameTable:=TNewExeExportNameTable.Create;
FNonresidentNameTable:=TNewExeExportNameTable.Create;
FModuleReferenceTable:=TNewExeModuleReferenceTable.Create;
FImportedNameTable:=TNewExeImportedNameTable.Create;
FEntryTable:=TNewExeEntryTable.Create;
@ -4504,6 +4510,7 @@ cleanup:
FEntryTable.Free;
FImportedNameTable.Free;
FModuleReferenceTable.Free;
FNonresidentNameTable.Free;
FResidentNameTable.Free;
FResourceTable.Free;
FHeader.Free;