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

// 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");

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.