2009-02-16 23 views

Respuesta

2

Olvidó la etiqueta "tarea".

La vinculación en tiempo de carga significa que la DLL a la que se está conectando se carga cuando se inicia la aplicación, independientemente de si realmente usa o no la funcionalidad en esa DLL. La vinculación dinámica significa que la funcionalidad de la DLL solo se carga cuando realmente se necesita.

14

de carga en tiempo Enlazado dinámico

Cuando un ejecutable está vinculado a un archivo DLL en tiempo de compilación el enlazador no insertará el código objeto, sino que insertar una talón de que básicamente dice que una función de esta el nombre se encuentra en este DLL.

Ahora cuando se ejecuta el ejecutable, bits de la ejecutable será que faltan (es decir, los trozos de función) por lo que antes se permite que el programa para ejecutar el programa de carga fija hasta estas funciones que faltan reemplazándolos con puntos de entrada en la Archivos DLL

Solo después de que todos los stubs se hayan reemplazado (es decir, se resuelva), se permitirá la ejecución del ejecutable.

Esto es vinculación dinámica de tiempo de carga.

en tiempo de ejecución dinámico Vinculación

En este caso el ejecutable no estaba vinculado a ninguna archivo de biblioteca DLL, por lo que no contendrá ningún talones en el DLL y, como tal, el cargador de programa no tiene ningún problema de ejecutar el ejecutable.

Pero la tarea de obtener acceso a la función desde dentro de la DLL se deja en el ejecutable y se puede hacer usando la GetProcAddress API de Windows.

Esto es un enlace dinámico en tiempo de ejecución.

0

La vinculación dinámica del tiempo de carga la realiza el sistema operativo cuando se carga una aplicación. OS usa la información que el enlazador ha colocado en el archivo para ubicar los nombres de la DLL, y luego busca esos archivos DLL, y si no puede ubicar el Dll, simplemente finaliza y da un mensaje de error, de lo contrario, OS asigna la DLL al espacio de direcciones virtuales del proceso y aumenta el recuento de referencias de DLL.

Cuestiones relacionadas