Ok, la ventaja de las librerias dinámicas radica principalmente en dos cosas:
1. Se pueden actualizar sin necesidad de recompilar todos los programas que hacen uso de esa librería.
2. Si tienes muchos programas que hacen uso de la misma librería, se gasta menos espacio en disco y en la RAM.
Existen dos maneras de hacer librerias dinamicas, librerias dinamicas que se enlazan con el programa de manera estática, y librerias dinamicas que se enlazan con el programa de manera dinámica (suena raro, no?
En cristiano quiere decir,
- Puedes crear el DLL como si fuera una libreria estática, de esta manera el compilador genera tanto un archivo .lib como un .dll
Usas el .lib en los programas que necesitan de la libreria y en tiempo de ejecución buscara automaticamente el dll correspondiente.
- La otra es que usando una función llamada "LoadLibrary" cargas el DLL directamente en el programa y luego le pides un puntero a la función que necesites dentro del DLL usando "GetProcAddress". Si no entiendes esto ultimo, no te preocupes, esto es más avanzado y no necesitas saberlo (o usarlo) con DLLs.
Esperen pronto un pequeño tutorial tanto de librerias estáticas como dinámicas en Visual C++.