Differenze tra le versioni di "Passare a una funzione esterna il Puntatore di una Struttura, scritta in Gambas, ottenuto con la funzione VarPtr()"

Da Gambas-it.org - Wikipedia.
Riga 10: Riga 10:
 
  End Struct
 
  End Struct
 
   
 
   
  Private variabile_struttura 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()
 
   
 
   
   FunzioneEsterna(<Font Color=blue><B>VarPtr</b></font>(variabile_struttura))
+
   FunzioneEsterna(<Font Color=blue><B>VarPtr</b></font>(<Font Color=darkorange>variabile_struttura</font>))
 
   
 
   
 
  End
 
  End

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