Special Command Tags
[DLL] Dynamic Link Library
 
Format OPEN (chan,[fileopt])"[DLL:lib_name;fnc_name]params"
 
Where:
 
[DLL ..] File tag clause to inform ProvideX that it will be opening a Dynamic
Link Library (DLL).
 
chan Channel or logical file number to open.
 
fileopt File options.
 
fnc_name Case-sensitive name of the function. It acts as the entry point into the library. String expression.
 
lib_name Path and/or name of the free-standing Dynamic Link Library that contains the external function you want to invoke. String expression.
 
params DLL-specific parameters. Semicolon-separated arguments and/or variables to receive returned values, etc.


*Note* For use in WindX or Windows only.


 
Description The [DLL] tag is used as a prefix in an OPEN statement to denote that ProvideX is to route all file I/O requests to an external (user-defined) DLL. The [DLL] tag is built into the ProvideX programming language, which recognizes the tag and deals with it internally at run time.
A DLL is a free-standing Dynamic Link Library of 'C'-style functions (external to ProvideX) that is used in Windows environments. For library names, the .DLL extension is not mandatory (other extensions, such as .EXE are also used).
Case-sensitive function names serve as entry points into the DLL.


*Warning* You can use third-party DLLs, but make sure you have good documentation on what you're passing and getting back. Best Software Canada Ltd. can provide assistance on how to call a DLL, but does not provide support for third-party DLLs. There is no validation on what you pass. Bad pointers can cause memory corruption


—GPFs are not uncommon.
 
Example PROCESS SERVER "Inventory" ON "[DLL]c:\app\server.dll;Entry" OPEN (1)"[dll:dbase2.dll;entry]cust.db"
 
See Also DLL( ) / DLX( ) Functions
OPEN Directive