Passare a una funzione esterna il Puntatore di una Struttura, scritta in Gambas, ottenuto con la funzione VarPtr(): differenze tra le versioni
Vai alla navigazione
Vai alla ricerca
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
| Riga 5: | Riga 5: | ||
Public Struct STRUTTURA | Public Struct '''STRUTTURA''' | ||
b As Byte | b As Byte | ||
c As Short | c As Short | ||
End Struct | End Struct | ||
Private <Font Color=darkorange>variabile_struttura</font> As <Font Color=red><B>Struct</b></font> STRUTTURA | Private <Font Color=darkorange>variabile_struttura</font> As <Font Color=red><B>Struct</b></font> '''STRUTTURA''' | ||
Public Sub Main() | Public Sub Main() | ||
Versione delle 19:14, 1 mar 2025
Se a una funzione esterna si intende passare il Puntatore di una Struttura, scritta in Gambas, ottenuto con la funzione "VarPtr()", anziché direttamente l'istanza della Struttura medesima, bisognerà dichiarare l'Oggetto di tipo della Struttura, da passare, come Globale e usare la parola-chiave "Struct", altrimenti si otterrà l'errore "Tipo dati non supportato ".
Mostriamo un esempio astratto:
Private Extern FunzioneEsterna(p As Pointer) In "Libxxxx" ' Passa un Puntatore anziché l'Oggetto del tipo della Struttura Public Struct STRUTTURA b As Byte c As Short End Struct Private variabile_struttura As Struct STRUTTURA Public Sub Main() FunzioneEsterna(VarPtr(variabile_struttura)) End