Ventajas de la vinculación dinámica
La vinculación dinámica tiene las siguientes ventajas sobre la vinculación estática:
- Varios procesos que cargan el mismo archivo DLL en la misma dirección base comparten una sola copia del archivo DLL en memoria física. Esto ahorra memoria del sistema y reduce el intercambio.
- Cuando cambian las funciones de un archivo DLL, las aplicaciones que las usan no necesitan volver a compilarse ni vincularse de nuevo, siempre y cuando los argumentos de la función, las convenciones de llamada y los valores devueltos no cambien. En cambio, el código de un objeto vinculado estáticamente requiere que se vuelva a vincular la aplicación cuando cambien las funciones.
- Un archivo DLL puede proporcionar compatibilidad después del mercado. Por ejemplo, un archivo DLL de controlador de pantalla se puede modificar para admitir una pantalla que no estaba disponible cuando la aplicación se envió inicialmente.
- Los programas escritos en diferentes lenguajes de programación pueden llamar a la misma función DLL siempre que los programas sigan la misma convención de llamada que usa la función. La convención de llamada (como C, Pascal o llamada estándar) controla el orden en el que la función que realiza la llamada debe insertar los argumentos en la pila, ya sea la función o la función de llamada es responsable de limpiar la pila y de si se pasan argumentos en los registros. Para obtener más información, consulte la documentación incluida con el compilador.
Una posible desventaja de utilizar archivos DLL es que la aplicación no es independiente; depende de la existencia de un módulo de archivo DLL separado. El sistema finaliza los procesos mediante la vinculación dinámica en tiempo de carga si requieren un archivo DLL que no se encuentra en el inicio del proceso y proporciona un mensaje de error al usuario. El sistema no finaliza un proceso mediante la vinculación dinámica en tiempo de ejecución en esta situación, pero las funciones exportadas por el archivo DLL que faltan no están disponibles para el programa.