Requires FM 1.0 Beta 9.0 (April 2008) or newer
int callLib(void *fnptr, ...)
Returns the return value of the called DLL function, which varies depending on the function called.
Calls a function in a DLL that has previously been loaded with loadLib and getLibFn.
// 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");
loadLib, getLibFn, freeLib, fCallLib