Per analizzare quale dll sta usando un programma si utilizza Dependency Walker che è un programma portatile, permette di selezionare il programma incriminato e vedere le dll dipendenti. Da tenere a mente la seguente distinzione:
Dipendenza implicita
Si tratta di dipendenza implicita quando la libreria è collegata direttamente all'eseguibile. Tale associazione è stata fatta quindi al momento della compilazione del programma.All'avvio del modulo padre (eseguibile), esso caricherà tutte le librerie a cui è dipendente implicitamente.
Dipendenza dinamica
Nella dipendenza dinamica invece, il modulo non viene caricato preventivamene, ma è il programma che lo chiama durante il runtime; l'eventuale assenza di una libreria dinamica non impedisce l'avvio del programma ma ne preclude il corretto funzionamentoDipendenza transitiva
Si tratta di dipendenza transitiva quando la funzione presente in un modulo, viene caricata da una terza libreria.In questo caso il modulo in questione viene caricato all'avvio del programma (come nella dipendenza implicita), ma la funzione in questione viene presa da un'altra libreria non associata preventivamente all'eseguibile.
[FonteMegalab]