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 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 .CHM, .PDF or .HTM file.
Note: The 64-bit versions requires external routines with a 64-bit format. These are identified with file name extensions of .DLF64, .DLP64, .FDL64, and .DLL64. The 64-bit external files reside in the USERLIB64 subdirectory. They cannot be used by the 32-bit EES programs.
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, C++, and FORTRAN are provided by clicking on the links follow.