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