Autore Topic: [C] Gestire librerie dinamiche condivise .so con SDL2  (Letto 766 volte)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.262
  • Ne mors quidem nos iunget
    • Mostra profilo
[C] Gestire librerie dinamiche condivise .so con SDL2
« il: 01 Settembre 2015, 00:39:11 »
Mostro di seguito un breve codice per gestire il caricamento di librerie dinamcihe condivise .so con il subsistema loadso di SDL2:
Codice: C [Seleziona]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "SDL2/SDL.h"


void* Handle = NULL;
int (*FunzioneEsterna)(int anInt);


int main(int argc, char **argv) {

int r;

// Carica dinamicamente la libreria 'mialibreria.so':
Handle = SDL_LoadObject(argv[1]);

char* NomeFunzione = argv[2];

// Carica la funzione esportata da 'mialibreria.so':
FunzioneEsterna = (int (*)(int))SDL_LoadFunction(Handle, NomeFunzione);

// Invoca la 'FunzioneEsterna' e le passa un Intero:
if (FunzioneEsterna != NULL) {
r = FunzioneEsterna(SDL_atoi(argv[3]));
printf("\nRitorno dalla libreria esterna al programma principale di gestione: \n---> %d\n", r);
} else {
printf("Errore !");
SDL_UnloadObject(Handle);
return -1;
}

SDL_UnloadObject(Handle);

SDL_Quit()

return (0);

}
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »