Differenze tra le versioni di "Scrivere una libreria esterna che ritorna un Vettore di tipo char"
Da Gambas-it.org - Wikipedia.
Riga 20: | Riga 20: | ||
Codice Gambas: | Codice Gambas: | ||
+ | Se la libreria esterna in C ritorna un vettore di tipo "''char''", allora in Gambas esso verrà recuperato e rappresentato da una variabile di tipo ''Puntatore'', che andrà poi dereferenziato al fine di recuperare i valori passati. | ||
Library "/tmp/libprovaC" | Library "/tmp/libprovaC" | ||
Private Extern prova() As Pointer | Private Extern prova() As Pointer |
Versione delle 03:57, 11 mar 2014
Di seguito è mostrato un esempio, nel quale la funzione esterna della libreria in C ritorna un Vettore di tipo "char".
Codice della libreria esterna in C:
char a[4]; char *prova() { a[0] = 'p'; // assegna un carattere per ciascun elemento del vettore di tipo "chr" a[1] = 'e'; a[2] = 'r'; a[3] = 'a'; return a; // ritorna l'indirizzo del vettore "a" }
Codice Gambas: Se la libreria esterna in C ritorna un vettore di tipo "char", allora in Gambas esso verrà recuperato e rappresentato da una variabile di tipo Puntatore, che andrà poi dereferenziato al fine di recuperare i valori passati.
Library "/tmp/libprovaC" Private Extern prova() As Pointer Public Sub Main() Dim p As Pointer Shell "gcc -o /tmp/libprovaC.so " & Application.Path & "/libprovaC.c -shared -fPIC" Wait p = prova() Print string@(p) End