Differenze tra le versioni di "Conoscere via codice il nome di una Struttura"
Da Gambas-it.org - Wikipedia.
Riga 2: | Riga 2: | ||
− | Mostriamo un semplice esempio pratico valido per un sistema a 64bit: | + | Mostriamo un semplice esempio pratico valido per un sistema a 64bit, nel quale il nome (Etichetta) identificativo della Struttura è "STRUTTURA": |
− | Public Struct STRUTTURA | + | Public Struct <FONT Color=#B22222>STRUTTURA</font> |
b As Byte | b As Byte | ||
c As Short | c As Short | ||
Riga 10: | Riga 10: | ||
− | '''Public Sub Main() | + | '''Public''' Sub Main() |
− | + | Dim st As New <FONT Color=#B22222>STRUTTURA</font> | |
− | + | Dim p1, p2 As Pointer | |
<FONT Color=gray>' ''Puntiamo all'oggetto Struttura:''</font> | <FONT Color=gray>' ''Puntiamo all'oggetto Struttura:''</font> | ||
Riga 20: | Riga 20: | ||
p2 = Pointer@(p1) | p2 = Pointer@(p1) | ||
− | Print "Nome della Struttura: " | + | Print "Nome della Struttura: "; String@(Pointer@(p2 + (SizeOf(gb.Pointer) * 3))) |
'''End''' | '''End''' |
Versione delle 18:46, 7 apr 2022
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