Abhängigkeiten einer Visual C++-Anwendung
Aktualisiert: November 2007
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 mfc90.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, der im Lieferumfang von Visual C++ enthalten ist. Depends.exe ist im Verzeichnis \Microsoft Visual Studio .NET 2005\Common7\Tools\bin installiert. Beachten Sie, dass depends.exe nur installiert wird, wenn Sie das Win32-Windows SDK-Tool auswählen, das bei der benutzerdefinierten Installation von Visual C++ in der Kategorie Visual C++-Tools verfügbar ist.
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 herauszufinden, welche DLLs dynamisch geladen werden (z. B. ActiveX-Steuerelemente), können Sie das Profilerstellungsfeature von depends.exe verwenden. Anschließend testen Sie die Anwendung so lange, bis Sie sicher sind, dass alle Codepfade berücksichtigt 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. Sollten Sie Probleme bei der Ausführung einer Anwendung auf einem Zielcomputer haben, können Sie depends.exe auf den Zielcomputer kopieren und die Anwendung in Depends.exe öffnen. Depends.exe meldet dann, welche DLLs der Anwendung fehlen oder in der 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 Ermitteln der neu zu verteilenden DLLs.