Dynamic link libraries (DLLs) are executable files that contain one or more routines
written in any of several programming languages. DLLs are a mechanism for storing
useful routines that might be needed by many applications. When an application needs
a routine that resides in a
DLL, it loads the DLL, invokes the routine, and unloads the DLL upon completion. SAS
provides routines and functions that let you invoke these external routines from within
SAS. You can access the DLL routines from the DATA step, the IML procedure, and SCL
code. You use the MODULE family of SAS call routines and functions (including MODULE,
MODULEN, MODULEC, MODULEI, MODULEIN, and MODULEIC) to invoke a routine that resides
in an external DLL. This documentation refers to the MODULE family of call routines
and functions generically as the MODULE functions.
These are general steps for accessing an external DLL routine:
-
Create a text file that describes the DLL routine that you want to access, including
the arguments that it expects and the
values that it returns (if any). This attribute file must be in a special format,
as described in
The SASCBTBL Attribute Table .
-
Use the FILENAME statement
to assign the SASCBTBL fileref to the attribute file that you created.
-
In a DATA step or SCL code, use a call routine or function (MODULE, MODULEN, or MODULEC)
to invoke the DLL routine. The specific function that you use depends on the type
of expected return
value (none, numeric, or character). (You can also use MODULEI, MODULEIN, or MODULEIC
within a PROC IML step.) The MODULE functions are described in
MODULE Function: Windows .
CAUTION:
Only experienced
programmers should access external DLLs.
By accessing a function in an external DLL, you transfer processing control to the
external function. If done improperly, or
if the external function is not reliable, you might lose data or have to reset your
computer (or both).