5. FAQ

5.1. Sto sviluppando sotto Windows e non riesco a trovare l'header dlfcn.h! Qual'è il problema?
5.2. Esiste un wrapper per la Windows API LoadLibrary che riproduca l'interfaccia di dlopen?

5.1. Sto sviluppando sotto Windows e non riesco a trovare l'header dlfcn.h! Qual'è il problema?

Il problema è che l'header dlfcn.h non esiste sotto Windows, come non esiste una interfaccia dlopen. Una API con funzionalità similare è centrata sulla funzione LoadLibrary, e la maggior parte delle osservazioni contenute in questo documento è applicabile a questa interfaccia. Si faccia riferimento al sito del Microsoft Developer Network per ulteriori informazioni.

5.2. Esiste un wrapper per la Windows API LoadLibrary che riproduca l'interfaccia di dlopen?

Non sono a conoscenza di nessuna API del genere, ed è probabile che un wrapper in grado di supportare tutte le opzioni di dlopen non diverrà mai disponibile.

Esistono tuttavia delle alternative: libtltdl (parte di libtool) incapsula una varietà di API per il caricamento dinamico, ivi incluse dlopen e LoadLibrary. Un'altra alternativa è la funzionalità di caricamento dinamico di moduli di Glib. Si può utilizzare una di queste API per garantire una miglior portabilità tra piattaforme. Io non le ho mai usate, qundi non posso dire quanto stabili o funzionanti queste soluzioni risultino essere.

Si faccia anche riferimento alla sezione 4, "Dynamically Loaded (DL) Libraries", della Program Library HOWTO per altre tecniche per caricare librerie e istanziare classi indipendentemente dalla piattaforma.