上: dlltool


13.1 dlltool .defファイルのフォーマット

.defファイルには,任意の数の以下のコマンドが含まれています.

NAME name [ , base ]
結果として,name.exeという名前になります.
LIBRARY name [ , base ]
結果として,name.dllという名前になります.
EXPORTS ( ( ( name1 [ = name2 ] ) | ( name1 = module-name . external-name ) )
[ integer ] [ NONAME ] [ CONSTANT ] [ DATA ] [ PRIVATE ] ) *
name1をDLLのエクスポートシンボルとして序数integerを追加して 宣言し,また,DLL module-nameの関数external-nameの(前出の) 別名としてname1を宣言します.
IMPORTS ( ( internal-name = module-name . integer ) | [ internal-name = ] module-name . external-name ) ) *
序数がintegerexternal-nameやエクスポートした関数が,ファ イルmodule-nameからインポートされるものとして宣言します. internal-nameが指定されている場合,これは,DLLの本体にある,イン ポートされる関数が参照する名前になります.
DESCRIPTION string
stringを出力される.expファイルの.rdataセクションに 書き込みます.
STACKSIZE number-reserve [, number-commit ]
HEAPSIZE number-reserve [, number-commit ]
--stack--heapnumber-reservenumber-commitを,出力の.drectveセクションに生成します.リ ンカはこれを見て,それに作用します.
CODE attr +
DATA attr +
SECTIONS ( section-name attr + ) *
--attr section-name attrを出力の.drectveセク ションに生成し,そこでのattrREADWRITEEXECUTE,またはSHAREDのいずれかになります.リンカはこれを 見て,それに作用します.