Referenz - ALIAS
Syntax A: [ DECLARE ] { SUB | FUNCTION } Procname ALIAS "Aliasname" ...
Syntax B: ... AS Datentyp ALIAS "Modfier" [ PTR ]
Typ: Klausel
Kategorie: Bibliotheken
Syntax A: Prozedur-Deklaration
ALIAS gibt einer Prozedur in einer Library einen neuen Namen, mit dem man auf sie verweisen kann.
- 'Aliasname' ist der Name, den die Prozedur in der Library trägt.
- 'SubName ist der Name, den die Prozedur innerhalb des Programms trägt.
'Aliasname' kann im Programm nicht zum Aufruf der Prozedur verwendet werden. Er ist aber für den Linker sichtbar, wenn der Code zusammen mit Code in anderen Sprachen gelinkt wird.
ALIAS wird üblicherweise für Prozeduren verwendet, die in anderen Sprachen geschrieben sind und deren Name in FreeBASIC nicht erlaubt ist. Wird ALIAS mit DECLARE verwendet, dann wird nur 'Aliasname' vom Linker verwendet.
Anders als bei Prozedurnamen wird bei ALIAS nicht die Groß-/Kleinschreibung des Aliasnamens geändert. ALIAS ist daher nützlich, wenn ein externer Code eine spezielle Schreibweise des Namens benötigt.
Beispiel:
DECLARE SUB xClearScreen ALIAS "ClearVideoScreen" ()
SUB xClearScreen ALIAS "ClearVideoScreen" ()
' Inhalt der Prozedur
END SUB
xClearScreen
Syntax B: Datentyp-Modifier
ALIAS gibt dem Namen eines Datentypen eine alternative Bedeutung, welche benötigt werden könnte, wenn mit anderen Sprachen als FreeBASIC gelinkt wird.
Beispielsweise wird "BYTE PTR" durch den C++-Datentyp "signed char *" umgesetzt. Mit ALIAS kann diese Umsetzung auch durch den Datentyp "unsigned char *" oder "char *" ersetzt werden. FreeBASIC-intern hat dies keine Bedeutung, ebensowenig beim Linken mit C-Modulen. Beim Linken mit C++-Modulen werden die Informationen über den Datentyp jedoch mitcodiert, und der Datentyp-Modifier kann notwendig sein.
Unterstützte Modifier:
- LONG ALIAS "long"
- ULONG ALIAS "long"
- ANY ALIAS "char" PTR
- ANY ALIAS "__builtin_va_list" PTR (für die Targets dos, win32, win64, linux-x86)
- ALIAS "__builtin_va_list" (für das Target aarch64)
- ALIAS "__builtin_va_list[]" (für das Target linux-x86_64)
Bei "__builtin_va_list" handelt es sich um den Datentyp, mit dem der Compiler GCC variable Parameterlisten umsetzt (siehe auch CVA_START).
Unterschiede zu QB:
In QB funktioniert ALIAS nur zusammen mit DECLARE.
Siehe auch:
DECLARE, SUB, FUNCTION, EXPORT, EXTERN (Module), Module (Library / DLL)
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|