How to call DLL functions?

The script engine can import procedure and functions from external DLL files. Thus, you can extend your publication by calling your own DLL functions.

How to import a DLL function in HEScript?

This is done thanks to the external keyword.

Syntax:

function functionName(arguments): resultType; 
[callingConvention]; external "libName.dll" [name 'ExternalFunctionName'];

For example, the following declaration:

function MyFunction(arg: integer): integer; external 'CustomLib.dll';

imports a function called MyFunction from CustomLib.dll. Default calling convention, if not specified, is register.

HEScript allows to declare a different calling convention (stdcall, register, pascal, cdecl or safecall) and to use a different name for the DLL function, like the following declaration:

function MsgBox(hWnd: Pointer; lpText, lpCaption: String; 
uType: Cardinal): Integer; stdcall; external "user32.dll" name 'MessageBoxW';

This imports ‘MessageBoxW’ function from User32.dll (Windows API library), named ‘MsgBox’ to be used in script, like:

procedure TestDLL;
var
S: String; 
begin 
S := InputBox("What do you want to show?", "Query", "");
MsgBox(0, S, "You entered:", MB_OK+MB_ICONINFORMATION);
end;
Example not available in this online documentation: please run the offline help from HTML Executable to have a working example.

Pointer and out parameters are not handled by the script engine.

Introduction to Scripting

Using the Script Manager

Script Function Reference


Copyright G.D.G. Software 2018. All rights reserved