DYLIBLOAD

FreeBASIC-Referenz » Alphabetische Befehlsreferenz » D » DYLIBLOAD

Syntax: DYLIBLOAD (LibName)
Typ: Funktion
Kategorie: Bibliotheken

DYLIBLOAD versucht, eine Dynamic Link Library (dll) bzw. ein Shared Object (so) zu laden, und gibt in einem Pointer einen Handle zu dieser dll/so aus.

Durch DYLIBLOAD wird eine externe dll bzw. so zur Laufzeit in den Speicher geladen. Ihre Funktionen sind ab diesem Zeitpunkt theoretisch verfügbar, müssen aber erst durch DYLIBSYMBOL definiert werden, um aufgerufen werden zu können.

Nach der Nutzung der Funktionen der DLL sollte der belegte Speicher durch DYLIBFREE freigegeben werden.

Beispiel (aus dem Verzeichnis examples/dll in Ihrem FreeBASIC-Ordner):
In diesem Beispiel wird angenommen, dass sich im FreeBASIC-Verzeichnis die Datei "mydll.dll" befindet, die die Funktion "AddNumbers" enthält.

DIM library AS ANY PTR
DIM addnumbers AS FUNCTION( BYVAL operand1 AS INTEGER, _
    BYVAL operand2 AS INTEGER ) AS INTEGER

library = DYLIBLOAD( "mydll" )
IF( library = 0 ) THEN
  PRINT "Cannot load the mydll dynamic library, ";
  PRINT "aborting program..."
  END 1
END IF

addnumbers = DYLIBSYMBOL( library, "AddNumbers" )
IF( addnumbers = 0 ) THEN
  PRINT "Cannot get AddNumbers function address ";
  PRINT "from mydll library, aborting program..."
  END 1
END IF

RANDOMIZE TIMER

x = RND * 10
y = RND * 10

PRINT x; " +"; y; " ="; addnumbers( x, y )

DYLIBFREE library

Unterschiede zu QB: neu in FreeBASIC

Plattformbedingte Unterschiede: wird unter DOS nicht unterstützt

Unterschiede zu früheren Versionen von FreeBASIC: existiert seit FreeBASIC v0.13

Unterschiede unter den FB-Dialektformen:
In der Dialektform -lang qb steht DYLIBLOAD nicht zur Verfügung und kann nur über __DYLIBLOAD aufgerufen werden.

Siehe auch:
DYLIBFREE, DYLIBSYMBOL, Module (Library / DLL)