Deklaro de Eksterna Funkcio
{ PUBLIC | PRIVATE } EXTERN
Identifier
(
[ Parameter AS Datatype [ , ... ] ]
)
[ AS Datatype ]
[ IN Library ] [ EXEC Alias ]
Tio cxi deklaras ekstera funkcio lokata en sistema dinamike bindebla biblioteko.
Argumentoj
Parametroj de ekstera funkcio povas esti de cxio Gambaso datumtipoj, krom
Variant.
Gambaso estos auxtomate administranto gxiajn dataumtipojn al interna masxino.
Kiam pasante funkcio ricevas referenco al gxia datumoj. Se
estas klaso, tiam funkcio recivas referenco al statika datumoj de klaso.
Por iu ajn referenca argumento, uzu
Pointer datumtipo.
Vi povas uzi
String argumentojn, krom se funkcio modifas gxin, cxar en Gambaso
String valoroj povas esti opuza.
Redonas Valoron
Redona valoro de externa funkcio povas esti cxio Gambaso datumtipoj,
krom
Object kaj
Variant.
Se eksterna funkcio redonas cxenon, tiam Gambaso redonos kopion de gxi.
Se vi bezonas reala cxeno, kiu estis redonata de funkcio, uzu
Pointer datumtipon kaj
StrPtr funkcion.
Nomo de Biblioteko
Nomo de biblioteko estas specifata kun
Library argumento. Se vi ne specifas gxin, kial nomo de biblioteko specifis kun lasta
LIBRARY
deklaro estas uzata.
Nomo de biblioteko devas esti nomo de gxia dosiero sen sufikso kaj nombro de redakcio.
Por ekzemplo, se vi volas uzi OpenGL biblioteko nomata
libGL.so.1
en via sistemo, nomo, kiu vi uzos en Gambaso estas
"libGL"
.
Se vi bezonas specifi nombro de redakcio de biblioteko (nombroj malantaux
.so
sufikso en ), vi povas doni gxin malantaux nomo de biblioteko uzanto dupunkton disigilo.
Por ekemplo, se vi bezonas spcifi 1.0.7667 redakcion de OpenGL biblioteko, vi spcios nomon de biblioteko
"libGL:1.0.7667"
.
Examples
' Mi bezonas fari io ajn ioctl'n!
EXTERN ioctl(fd AS Integer, op AS Integer, arg AS Pointer) AS Integer IN "libc:6"
...
Err = ioctl(MyStream.Handle, ... )
Nomo de funkcio
Nomo de funkcio en biblioteko estas defauxlte nomo de funkcio en Gambaso, ekz.
.
Se gxi estas neebla aux ne dezirinda, vi povas specifata vera biblioteka nomo de funkcio kun sxlosilvorto
EXEC
.
Examples
' Tio cxi nomo de funkcio estas nur Gabaso rezervata vorto!
EXTERN SysOpen(Name AS String, Flags AS Integer, Mode AS Integer) AS Integer IN "libc:6" EXEC "open"
See also