2009-02-16 16 views

risposta

2

Hai dimenticato il tag "compiti".

Il collegamento in fase di caricamento indica che la DLL a cui si sta collegando viene caricata all'avvio dell'applicazione, indipendentemente dal fatto che si utilizzi effettivamente la funzionalità in tale DLL. Collegamento dinamico significa che la funzionalità della DLL viene caricata solo quando è effettivamente necessaria.

14

carico-tempo collegamento dinamico

Quando un eseguibile è collegato a una DLL al momento della compilazione del linker non inserirà il codice oggetto, ma si inserisce un stub che dice fondamentalmente una funzione di questo il nome si trova in questa DLL.

Ora, quando viene lanciato l'eseguibile, bit dell'eseguibile mancheranno (cioè i mozzi funzione) quindi prima che il programma è consentita l'esecuzione del caricatore di programma fissa queste funzioni mancanti sostituendole con punti di ingresso nel File DLL

Solo dopo che tutti gli stub sono stati sostituiti (ovvero risolto) l'eseguibile potrà essere eseguito.

Questo è il collegamento dinamico del tempo di caricamento.

di run-time dinamica Linking

In questo caso l'eseguibile non è stato collegato a qualsiasi file di libreria DLL, in modo da non contenere alcun stub nella DLL e come tale il caricatore di programma non ha alcun problema in esecuzione il eseguibile.

Ma il compito di ottenere l'accesso alla funzione da dentro la DLL è lasciato all'eseguibile e può essere eseguito utilizzando l'API di Windows GetProcAddress.

Questo è il collegamento dinamico in fase di esecuzione.

0

Il collegamento dinamico del tempo di caricamento viene eseguito dal sistema operativo quando viene caricata un'applicazione. Il sistema operativo utilizza il linker di informazioni inserito nel file per individuare i nomi della DLL e quindi cerca quelle DLL e, se non riesce a individuare la DLL, termina semplicemente e restituisce un messaggio di errore, altrimenti il ​​sistema operativo esegue il mapping della DLL nel spazio di indirizzamento virtuale del processo e aumenta il numero di riferimenti DLL.

Problemi correlati