View Full Version : [C] ::. Architettura a plugin .::
Mi domandavo se qualcuno di voi ha mai sviluppato un sistema per caricare a run-time dei plug-in creati ad hoc per un vostro programma. Quali tecniche avete usato? Quali sono i possibili metodi per implementare una magia del genere?
Parliamone, perchè oltre ad essere molto interessato, sono sicuro che interesserà a molti altri.
ilsensine
08-02-2006, 07:59
Puoi utilizzare il caricamento dinamico delle librerie (ad es. dlopen/dlclose ecc.) oppure il caricamento con LD_PRELOAD e "registrare" il tuo plugin con funzioni di costruzione apposite (dichiarate con __attribute__((constructor)) )
Puoi utilizzare il caricamento dinamico delle librerie (ad es. dlopen/dlclose ecc.) oppure il caricamento con LD_PRELOAD e "registrare" il tuo plugin con funzioni di costruzione apposite (dichiarate con __attribute__((constructor)) )
Si avevo pensato a questo. Ma secondo te un'architettura fatta bene dovrebbe "forzare" l'uso di una API messa a disposizione del programma? Oppure lasciare libero spazio all'implementazione del plugin? E come si potrebbe realizzare una simile "forzatura"?
Inoltre mi chiedo come si potrebbe rendere tutto ciò portabile in sistemi non Unix senza passare per le Win32 API e tonnellate di #ifdef
Un'altra cosa, in cosa potrebbe rientrarci i flag -PIC e -FPIC di GCC in tutto ciò?
DEVI forzare l'uso di una architettura particolare al plug-in altrimenti non sai quali funzioni andare a richiamare... Mettere a disposizione un framework o meno, dipende da quanto e come il plug-in deve interagire con il programma principale...
ilsensine
08-02-2006, 10:46
Un'altra cosa, in cosa potrebbe rientrarci i flag -PIC e -FPIC di GCC in tutto ciò?
position-indipendent code. E' quel frag che ti consente di cambiare una libreria (con un'altra contenente gli stessi simboli, ma in posizioni diverse) senza ricompilare il programma.
DEVI forzare l'uso di una architettura particolare al plug-in altrimenti non sai quali funzioni andare a richiamare... Mettere a disposizione un framework o meno, dipende da quanto e come il plug-in deve interagire con il programma principale...
Tu hai fatto mai una cosa del genere in Windows? :confused:
E' quel frag
Mi sa che giochi troppo a Quake III Arena ultimamente... :D
Tu hai fatto mai una cosa del genere in Windows? :confused:
Ho fatto qualche prova... Mai comunque mettendo a disposizione un framework per i plugin...
Diciamo che principalmente quella che devi definire è l'interfaccia del plug-in...e quella deve rimanere standard per tutti i plug-in...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.