Referenz - EXTERN (Module)
Syntax: EXTERN [IMPORT] Bezeichner [ALIAS "Aliasname"] [AS Typ]
Typ: Anweisung
Kategorie: Bibliotheken
EXTERN wird benutzt, um auf externe Variablen zuzugreifen, die in anderen Modulen oder DLLs deklariert sind. Im Gegensatz zu COMMON wird kein Speicherplatz reserviert, die Variable wird lediglich definiert und zeigt auf den Speicherbereich des anderen Moduls. Die Anweisung wurde hinzugefügt, um die C-Bibliotheken wie Allegro und DirectX zu unterstützen.
- 'IMPORT' muss verwendet werden, wenn auf Win32-DLLs zugegriffen wird, da hier Symbole auf eine andere Art verwaltet werden.
- 'Bezeichner' ist der Name, unter dem eine globale Variable der DLL oder des Moduls angesprochen werden soll.
- 'Aliasname' ist der Name, den die Variable im externen Programm trägt.
- 'Typ' ist ein beliebiger Datentyp wie z.B. INTEGER oder ein UDT.
Eine Variable kann mehrmals EXTERN deklariert werden, sofern bei dieser Deklaration derselbe Datentyp angegeben wird.
Eine als EXTERN definierte Variable benötigt kein SHARED (die Syntax erlaubt dies auch nicht), da diese Variablen automatisch global im Modul zur Verfügung stehen.
Beispiel:
' Modul1.bas
EXTERN foo ALIAS "foo" AS INTEGER
SUB SetFoo
foo = 1234
END SUB
'------'
' Modul2.bas
DECLARE SUB SetFoo
EXTERN Foo ALIAS "foo" AS INTEGER
DIM foo AS INTEGER = 0
SetFoo
PRINT Foo
SLEEP
Unterschiede zu QB: neu in FreeBASIC
Unterschiede zu früheren Versionen von FreeBASIC:
- Seit FreeBASIC v0.15 sind doppelte EXTERN-Deklarationen zulässig, sofern beide Male derselbe Datentyp angegeben wird.
- EXTERN existiert seit FreeBASIC v0.11.
Unterschiede unter den FB-Dialektformen:
In der Dialektform -lang qb steht EXTERN nicht zur Verfügung und kann nur über __EXTERN aufgerufen werden.
Siehe auch:
EXTERN ... END EXTERN, COMMON, DIM, REDIM, SHARED, ALIAS, Module (Library / DLL), Gültigkeitsbereich von Variablen
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|