Progress
External Program
Interfaces
Options For Shared Library Routine Declarations
In the syntax, the proc-name value is the name of your shared library routine. The EXTERNAL option indicates that the procedure being declared is an internal procedure implemented by an external shared library routine. The dllname value is the name of the shared library file that contains the routine.
If you specify the PERSISTENT option, the entire shared library remains loaded until Progress exits, or until you explicitly unload the shared library by using the 4GL RELEASE EXTERNAL statement.
Each parameter-definition value consists of a DEFINE PARAMETER statement. This is the syntax you must use for the DEFINE PARAMETER statement in a DLL routine declaration:
Each DEFINE PARAMETER statement specifies an INPUT, OUTPUT, or INPUT-OUTPUT parameter in the order it appears in the calling sequence of your shared library routine. You can also (optionally) define one RETURN parameter that provides the function return value of your shared library routine.
The parameter name (parameter) serves only as a place holder, and can take any unique identifier value. The AS datatype and LIKE field options require a special set of data types for shared library parameter definitions. These are described in the following section.
Windows DLL Calling Conventions
The PROCEDURE statement lets you specify the calling convention — C, Pascal, or standard—that your DLL requires. The default is the standard calling convention. Many Windows functions use the standard calling convention. Windows functions that take a variable number of arguments, such as
wsprintf()
, often use the C calling convention. For more information on the C, Pascal, and standard calling conventions, see the Microsoft C Language Reference . For more information on the calling convention that a particular Windows function requires, see the Microsoft Windows Programmer’s Reference . Table 5–1 shows how to specify calling conventions.
Table 5–1: DLL Calling Conventions To Specify This Calling Convention... Code This Option... C C Pascal PASCAL Standard STDCALL
You can alternatively specify the DLL entry point by number with the ORDINAL n option, where n is the ordinal number of the entry point in the library. If you specify the entry point by number, proc-name can have any unreserved identifier value, but you must use the same value for the RUN statement that executes the DLL routine.
Copyright © 2004 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095 |