13.1 The format of the dlltool .def file
A .def file contains any number of the following commands:
-
NAMEname[ ,base] - The result is going to be named name
.exe.
-
LIBRARYname[ ,base] - The result is going to be named name
.dll.
-
EXPORTS ( ( (name1[ =name2] ) | (name1=module-name.external-name) )
-
[integer] [ NONAME ] [ CONSTANT ] [ DATA ] [ PRIVATE ] ) * - Declares name1 as an exported symbol from the DLL, with optional ordinal number integer, or declares name1 as an alias (forward) of the function external-name in the DLL module-name.
-
IMPORTS ( (internal-name=module-name.integer) | [internal-name= ]module-name.external-name) ) * - Declares that external-name or the exported function whose ordinal number is integer is to be imported from the file module-name. If internal-name is specified then this is the name that the imported function will be referred to in the body of the DLL.
-
DESCRIPTIONstring - Puts string into the output .exp file in the
.rdatasection.
-
STACKSIZEnumber-reserve[,number-commit]
-
HEAPSIZEnumber-reserve[,number-commit] - Generates
--stackor--heapnumber-reserve,number-commit in the output.drectvesection. The linker will see this and act upon it.
-
CODEattr+
-
DATAattr+
-
SECTIONS (section-name attr+ ) * - Generates
--attrsection-name attr in the output.drectvesection, where attr is one ofREAD,WRITE,EXECUTEorSHARED. The linker will see this and act upon it.