Le DLL sono delle librerie che vengono caricate dinamicamente (Dynamic Link Library) dal sistema nel momento in cui un programma richiede l'uso di una loro funzione.

La loro caratteristica e' quella di essere caricate in memoria una sola volta e assegnate allo spazio di indirizzi del processo che le utilizza in modo che l'eseguibile principale non debba contenere il codice delle funzioni usate.

Le librerie .lib, sono statiche e incluse dal linker nell'eseguibile.

Non bisogna confondere gli include (i file .h) con le librerie ...

Nelle librerie c'e' il codice implementato nelle funzioni, negli include c'e' soltanto la "firma" di tali funzioni che serve al compilatore per "conoscere" la funzione e trattarla adeguatamente a compile-time.