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.
Versione del 31 mar 2018 alle 11:42 di Vuott (Discussione | contributi)
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
Mostriamo di seguito un semplice esempio pratico:
Library "libSDL2-2.0" ' 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