EXPORT

FreeBASIC-Referenz » Alphabetische Befehlsreferenz » E » EXPORT

Syntax: {SUB | FUNCTION} foo ( Argumente ) [AS Datentyp] EXPORT
Typ: Klausel
Kategorie: Bibliotheken

Wenn eine SUB oder FUNCTION in einer dll/so mit der EXPORT-Klausel deklariert wurde, wird sie zur PUBLIC-EXPORT-Tabelle hinzugefügt, sodass sie von externen Programmen aus mit DYLIBSYMBOL verlinkt werden kann.

Beispiel: mydll.bas

' kompiliert mit: fbc -dll mydll.bas (erstellt mydll.dll und libmydll.dll.a unter Win32,
'                                 oder libmydll.so unter Linux)
DECLARE FUNCTION AddNumbers ALIAS "AddNumbers" ( _
   BYVAL operand1 AS INTEGER, BYVAL operand2 AS INTEGER ) _
   AS INTEGER

FUNCTION AddNumbers  ( _
    BYVAL operand1 AS INTEGER, BYVAL operand2 AS INTEGER ) _
    AS INTEGER EXPORT
  AddNumbers = operand1 + operand2
END FUNCTION

Beispiel: Testmydll.bas

'Hauptprogramm
' erstelle einen Funktionspointer
' Argumente sind dieselben wie in der DLL
DIM AddNumbers AS FUNCTION ( _
   BYVAL operand1 AS INTEGER, BYVAL operand2 AS INTEGER ) _
   AS INTEGER

hndl = DYLIBLOAD("mydll.dll")
' Adresse des Programms finden
' (Groß-/Kleinschreibung beachten!)
AddNumbers = dylibsymbol( hndl, "AddNumbers" )
' Aufrufen
PRINT "1 + 2 ="; AddNumbers( 1, 2 )
SLEEP

Wichtig: Wenn Sie die ALIAS-Klausel nicht benutzen, verwendet FreeBASIC den von Ihnen angegebenen Programmnamen in Großbuchstaben.

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.11

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

Siehe auch:
DECLARE, DYLIBLOAD, DYLIBSYMBOL, Module (Library / DLL)