Differenze tra le versioni di "Modificare il valore di una variabile Integer puntata da un Puntatore e sua dereferenziazione con le funzioni esterne del API di SDL2"

Da Gambas-it.org - Wikipedia.
 
(7 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
 
Utilizzando un paio di funzioni esterne del API della libreria '''SDL2''' è possibile modificare il valore contenuto da una varibile di tipo ''Intero'' (''Integer'') puntata da un ''Puntatore'', nonché dereferenziare tale ''Puntatore'' per ottenere il valore contenuto da quella variabile ''Intero''.
 
Utilizzando un paio di funzioni esterne del API della libreria '''SDL2''' è possibile modificare il valore contenuto da una varibile di tipo ''Intero'' (''Integer'') puntata da un ''Puntatore'', nonché dereferenziare tale ''Puntatore'' per ottenere il valore contenuto da quella variabile ''Intero''.
  
E' necessario utilizzare la seguente libreria condivisa dinamica: ''libSDL2-2.0.so''
+
E' necessario utilizzare la seguente libreria condivisa: "''libSDL2-2.0.so.0.3000.7'' ".
 
 
  
 
Mostriamo di seguito un semplice esempio pratico:
 
Mostriamo di seguito un semplice esempio pratico:
  Library "libSDL2-2.0"
+
  Library "libSDL2-2.0:0.3000.7"
 
   
 
   
 
  <FONT Color=gray>' ''int SDL_AtomicGet(SDL_atomic_t* a)''
 
  <FONT Color=gray>' ''int SDL_AtomicGet(SDL_atomic_t* a)''
Riga 16: Riga 15:
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
   
 
   
 
   Dim i, orig, n As Integer
 
   Dim i, orig, n As Integer
 
   Dim p As Pointer
 
   Dim p As Pointer
 
   
 
   
  i = 1111
+
  i = 1111
 
   
 
   
 
  <FONT Color=gray>' ''Creiamo un "Puntatore" alla variabile di tipo "Intero":''</font>
 
  <FONT Color=gray>' ''Creiamo un "Puntatore" alla variabile di tipo "Intero":''</font>
  p = VarPtr(i)
+
  p = VarPtr(i)
 
    
 
    
 
  <FONT Color=gray>' ''Modifichiamo il valore della variabile "Intero" puntata dal "Puntatore".''
 
  <FONT Color=gray>' ''Modifichiamo il valore della variabile "Intero" puntata dal "Puntatore".''
 
  ' ''La funzione "SDL_AtomicSet()" ritorna il valore originario della variabile "Intero":''</font>
 
  ' ''La funzione "SDL_AtomicSet()" ritorna il valore originario della variabile "Intero":''</font>
  orig = SDL_AtomicSet(p, 2222)
+
  orig = SDL_AtomicSet(p, 2222)
  Print "Valore originario: "; orig
+
  Print "Valore originario: "; orig
 
    
 
    
 
  <FONT Color=gray>' ''Dereferenziamo il "Puntatore" per ottenere il valore ora contenuto dalla variabile di tipo "Intero":''</font>
 
  <FONT Color=gray>' ''Dereferenziamo il "Puntatore" per ottenere il valore ora contenuto dalla variabile di tipo "Intero":''</font>
  n = SDL_AtomicGet(p)
+
  n = SDL_AtomicGet(p)
 
   
 
   
  Print "Valore nuovo: "; n
+
  Print "Valore nuovo: "; n
 
      
 
      
  '''End'''
+
  End
 
 
  
  

Versione attuale delle 15:02, 2 ott 2024

Utilizzando un paio di funzioni esterne del API della libreria SDL2 è possibile modificare il valore contenuto da una varibile di tipo Intero (Integer) puntata da un Puntatore, nonché dereferenziare tale Puntatore per ottenere il valore contenuto da quella variabile Intero.

E' necessario utilizzare la seguente libreria condivisa: "libSDL2-2.0.so.0.3000.7 ".

Mostriamo di seguito un semplice esempio pratico:

Library "libSDL2-2.0:0.3000.7"

' int SDL_AtomicGet(SDL_atomic_t* a)
' Gets the value of an atomic variable.
Private Extern SDL_AtomicGet(a As Pointer) As Integer

' int SDL_AtomicSet(SDL_atomic_t* a, int v)
' Sets an atomic variable to a value.
Private Extern SDL_AtomicSet(a As Pointer, v As Integer) As Integer


Public Sub Main()

 Dim i, orig, n As Integer
 Dim p As Pointer

 i = 1111

' Creiamo un "Puntatore" alla variabile di tipo "Intero":
 p = VarPtr(i)
  
' Modifichiamo il valore della variabile "Intero" puntata dal "Puntatore".
' La funzione "SDL_AtomicSet()" ritorna il valore originario della variabile "Intero":
 orig = SDL_AtomicSet(p, 2222)
 Print "Valore originario: "; orig
  
' Dereferenziamo il "Puntatore" per ottenere il valore ora contenuto dalla variabile di tipo "Intero":
 n = SDL_AtomicGet(p)

 Print "Valore nuovo: "; n
   
End


Riferimenti