Differenze tra le versioni di "Conoscere via codice il nome di una Struttura"

Da Gambas-it.org - Wikipedia.
Riga 10: Riga 10:
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
   
 
   
 
   Dim st As New <FONT Color=#B22222>STRUTTURA</font>
 
   Dim st As New <FONT Color=#B22222>STRUTTURA</font>
Riga 22: Riga 22:
 
   Print "Nome della Struttura: "; String@(Pointer@(p2 + (SizeOf(gb.Pointer) * 3)))
 
   Print "Nome della Struttura: "; String@(Pointer@(p2 + (SizeOf(gb.Pointer) * 3)))
 
   
 
   
  '''End'''
+
  End

Versione delle 18:30, 7 giu 2024

Per conoscere via codice l'etichetta identificativa di una Struttura partendo dalla sua variabile, si effettuerà una ricerca nella sua area di memoria, puntando alla quale mediante apposito Puntatore:


Mostriamo un semplice esempio pratico valido per un sistema a 64bit, nel quale il nome (Etichetta) identificativo della Struttura è "STRUTTURA":

Public Struct STRUTTURA
  b As Byte
  c As Short
  i As Integer
End Struct


Public Sub Main()

  Dim st As New STRUTTURA
  Dim p1, p2 As Pointer 

' Puntiamo all'oggetto Struttura:
  p1 = Object.Address(st)

  p2 = Pointer@(p1)

  Print "Nome della Struttura: "; String@(Pointer@(p2 + (SizeOf(gb.Pointer) * 3)))

End