Contents - Index


Multiple External Routines in a Single DLL

 

EES recognizes three different types of externally compiled files.  The three types are:

 

DLF - dynamically-linked function

DLP - dynamically-linked procedure

FDL - dynamically-linked procedure with calling sequence accessible from any language

 

Originally, only one external routine could reside in a file.  The filename extension (.DLF, .DLP, or .FDL) identified the type of externally compiled file and the name of the external routine had to be the same name as filename (without the extension). 

 

However, it is also possible to place one or more external routines in a single file and this single file can contain all three types of external routines. The external file can have any name but it must have a .DLL filename extension.  If this file is placed in the USERLIB subdirectory or a subdirectory within a subdirectory, EES will automatically load all the external routines in the file at startup unless directed otherwise by the Library Manager.

 

Help can be provided for each routine in a separate Windows .HLP or a .HTM file.

 

EES must know the names of the external routines in the .DLL file and their type (DLF, DLP, or FDL) because the calling arguments differ for each type.  The mechanism for telling EES the names and types of the external routines is to provide three short routines in the DLL file with names DLFNames, DLPNames, and FDLNames that do nothing but return the calling names of each routine type in the DLL file.  DLFName, DLPNames, and FDLNames must be exported in the DLL.  They have one argument which is a character string.  The character string is filled with the names of the routines of each type that are contained in the DLL file.  A comma separates each file name. A zero length string is used to indicate that there are no files of that type.  Short code fragments in DELPHI 5, C++, and FORTRAN are provided by clicking on the links follow.

 

DELPHI 5 Code

Visual C++ Code

FORTRAN Code

 

Return to Multiple External Routines in a Single DLL