Next: , Up: Creating an Import Library

G.8.2.1 The Definition File

As previously mentioned, and unlike Unix systems, the list of symbols that are exported from a DLL must be provided explicitly in Windows. The main goal of a definition file is precisely that: list the symbols exported by a DLL. A definition file (usually a file with a .def suffix) has the following structure:


[LIBRARY name] [DESCRIPTION string] EXPORTS symbol1 symbol2 ...

This section, which is optional, gives the name of the DLL.
This section, which is optional, gives a description string that will be embedded in the import library.
This section gives the list of exported symbols (procedures, functions or variables). For instance in the case of API.dll the EXPORTS section of API.def looks like:

EXPORTS some_var get

Note that you must specify the correct suffix (@nn) (see Windows Calling Conventions) for a Stdcall calling convention function in the exported symbols list.

There can actually be other sections in a definition file, but these sections are not relevant to the discussion at hand.