Older Newer
Mon, 27 Dec 2021 08:41:59 . . . . SyneRyder [Improved example]


Changes by last author:

Added:
= callLib =

Requires FM 1.0 Beta 9.0 (April 2008) or newer

== Syntax ==

int callLib(void *fnptr, ...)

== Arguments ==

:fnptr

::A pointer (obtained with getLibFn) to the DLL function to call.

:...

::The other parameters required by the DLL function (varies depending on the function).

== Return ==

Returns the return value of the called DLL function, which varies depending on the function called.

== Description ==

Calls a function in a DLL that has previously been loaded with loadLib and getLibFn.

== Example ==

<code>

// This code loads the user32.dll

// DLL included with Windows and

// uses it to display a YES/NO

// Message Box.

int* lib_user32;

int* functionPointer;

int returnval;

// Load the DLL library

lib_user32 = loadLib("user32");

if (lib_user32) {

// Get the function in the DLL

functionPointer = getLibFn(lib_user32, "MessageBoxA");

if (functionPointer) {

// Call the function

strcpy(str0, "The window text is here");

strcpy(str1, "Caption Text");

returnval = callLib(functionPointer, NULL, str0, str1, MB_YESNO);

// Process return value

if (returnval == IDYES)

msgBox(MB_OK, "Yes!", "Yes was clicked");

if (returnval == IDNO)

msgBox(MB_OK, "No :(", "No was clicked");

}

else msgBox(MB_OK, "Error", "Function wasn't loaded");

// Free the library DLL

freeLib(lib_user32);

}

else msgBox(MB_OK, "Error", "DLL was not loaded");

</code>

== See Also ==

loadLib, getLibFn, freeLib, fCallLib

== Comments ==

:Everyone can add their comments about their experiences with this function here. Tips for using it are welcome, too.