Passare a una funzione esterna un Puntatore che successivamente deve essere passato anche ad altre funzioni esterne

Da Gambas-it.org - Wikipedia.

Se un parameto formale di una funzione esterna è definito come variabile di tipo Puntatore di Puntatore, affinché detta variabile deve essere mantenuta e passata ad altre funzioni esterne del codice, allora in Gambas tale parametro verrà dichiarato come Puntatore e poi nell'utilizzo concreto all'interno delle routine verrà passato preliminarmente alla funzione "VarPtr()".

Un esempio ne è la dichiarazione del primo parametro formale della funzione esterna di ALSA "snd_seq_open()":

int snd_seq_open (snd_seq_t **handle, const char *name, int streams, int mode)

che in un codice in linguaggio C sarebbe così utilizzata concretamente:

snd_seq_open(&ptr,...etc...);

in Gambas sarà così dichiarata:

Private Extern snd_seq_open(handle As Pointer, ...etc...) As Integer

e quindi così utilizzata:

Dim ptr As Pointer

snd_seq_open(VarPtr(ptr), ...etc...)