| Special Command Tags |
|
| 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 |
|