Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!


Referenz - DYLIBLOAD

Referenz-Navigation

 

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 BefehlsreferenzeintragDYLIBFREE 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

Siehe auch:
BefehlsreferenzeintragDYLIBFREE, BefehlsreferenzeintragDYLIBSYMBOL


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 24.07.2007 von RedakteurVolta angelegt.
  • Die aktuellste Version wurde am 11.09.2008 von RedakteurVolta gespeichert.
  Versionen Versionen