Home > lang > extdecl 
 en fr de es it nl pl pt pt_BR mk sq ca hu cs tr ar fa id vi ko ja ru zh zh_TW
Previous  Next  Edit  Rename  Undo  Refresh  Search  Administration  
Documentation
History
 
Warning! This page is not up to date.  See english version 
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 object funkcio ricevas referenco al gxia datumoj. Se object 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 Linux), 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".

Example

' 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. identifier.

Se gxi estas neebla aux ne dezirinda, vi povas specifata vera biblioteka nomo de funkcio kun sxlosilvorto EXEC.

Example

' 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

External Function Management