To use the services of a DLL, say
API.dll, in your Ada application
you must have:
API.dll. If not available this Ada spec must be built from the C/C++ header files provided with the DLL.
API.lib). As previously mentioned an import library is a statically linked library containing the import table which will be filled at load time to point to the actual
API.dllroutines. Sometimes you don’t have an import library for the DLL you want to use. The following sections will explain how to build one. Note that this is optional.
Once you have all the above, to compile an Ada application that uses the
API.dll and whose main subprogram is My_Ada_App,
you simply issue the command
$ gnatmake my_ada_app -largs -lAPI
The argument `-largs -lAPI' at the end of the `gnatmake' command tells the GNAT linker to look for an import library. The linker will look for a library name in this specific order:
The first three are the GNU style import libraries. The third is the Microsoft style import libraries. The last two are the actual DLL names.
Note that if the Ada package spec for
API.dll contains the
pragma Linker_Options ("-lAPI");
you do not have to add `-largs -lAPI' at the end of the `gnatmake' command.
If any one of the items above is missing you will have to create it
yourself. The following sections explain how to do so using as an
example a fictitious DLL called
|• Creating an Ada Spec for the DLL Services:|
|• Creating an Import Library:|