Understanding Dependencies of a Visual C++ Application
Um herauszufinden, von welchen Visual C++-Bibliotheken eine Anwendung abhängig ist, öffnen Sie im Dialogfeld Eigenschaftenseiten für das Projekt die Registerkarte Allgemein.Hier sehen Sie möglicherweise, dass das Projekt die MFC-Bibliothek und die ATL-Bibliothek verwendet.Wenn Sie MFC in einer dynamischen Bibliothek verwenden ausgewählt haben, ist Ihre Anwendung von MFC-DLLs wie "mfc100.dll" abhängig.Wenn die Anwendung weder MFC noch ATL verwendet, kann sie dennoch von der CRT-Bibliothek abhängig sein, falls im C/C++-Zweig der Konfigurationseigenschaften auf der Registerkarte Codegenerierung für die Laufzeitbibliothek die Option Multithreaded-Debug-DLL (/MDd) ausgewählt wurde.
Am umfassendsten können Sie bestimmen, von welchen DLLs eine Anwendung abhängt, indem Sie die Anwendung mit dem Dependency Walker (depends.exe) öffnen.Sie können Dependency Walker bei http://www.dependencywalker.com herunterladen.
Wenn Sie depends.exe oder das DUMPBIN-Dienstprogramm mit der /DEPENDENTS-Option verwenden, wird eine Liste der statisch mit der Anwendung verknüpften DLLs und eine Liste der verzögert geladenen DLLs der Anwendung angezeigt.
Um zu überprüfen, welche DLLs, z. B. ActiveX-Steuerelemente, dynamisch geladen werden, verwenden Sie die Profilerstellungsfunktion von depends.exe.Testen Sie anschließend die Anwendung, bis Sie sicher sind, dass alle Codepfade geprüft wurden.Nach Abschluss der Profilerstellungssitzung zeigt depends.exe die dynamisch geladenen DLLs an.
Bedenken Sie bei Verwendung von depends.exe, dass eine DLL von einer anderen DLL oder einer bestimmten Version einer DLL abhängig sein kann.Sie können depends.exe sowohl auf dem Entwicklungscomputer als auch auf einem Zielcomputer verwenden.Auf dem Entwicklungscomputer gibt depends.exe die DLLs zurück, die zur Unterstützung einer Anwendung erforderlich sind.Wenn Sie Schwierigkeiten dabei haben, eine Anwendung auf einem Zielcomputer auszuführen, können Sie depends.exe auf den Zielcomputer kopieren und die Anwendung in depends.exe öffnen.Depends.exe meldet, welche Anwendungs-DLLs fehlen oder in einer falschen Version vorliegen.
Sobald Sie über eine komplette Liste der DLLs verfügen, von denen die Anwendung abhängt, können Sie bestimmen, welche DLLs Sie bei einer Bereitstellung auf einem anderen Computer gemeinsam mit der Anwendung verteilen müssen.System-DLLs müssen in den meisten Fällen nicht verteilt werden, eventuell aber DLLs für Visual C++-Bibliotheken.Weitere Informationen finden Sie unter Determining Which DLLs to Redistribute.