Referenz - DYLIBLOAD
Syntax: DYLIBLOAD(LibName AS STRING) AS ANY PTR
Typ: Funktion
Kategorie: Speicherorganisation
Versucht, eine Dynamic Link Library (DLL) zu laden, und gibt in einem Pointer einen Handle zu dieser DLL aus.
LibName ist der Name der DLL, eventuell mit Pfadangabe. Wird keine Erweiterung angegeben, geht FreeBASIC unter Win32 automatisch von ".dll" und unter Linux von ".so" aus. (Eventuell wird vom Compiler nicht geprüft, ob eine Erweiterung angegeben wurde; Sie sollten keine Erweiterung angeben.)
Der Rückgabewert ist ein Handle zur DLL (eine Zahl, über die die DLL identifiziert und aufgerufen werden kann), wenn die DLL geladen werden konnte, oder null (0), wenn der Ladeversuch fehlschlägt.
Durch DYLIBLOAD wird eine externe DLL 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 librarySiehe auch:
DYLIBFREE,
DYLIBSYMBOL
| Zusätzliche Informationen und Funktionen | ||||
|---|---|---|---|---|
|
||||




FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!
Versionen