Grundlegendes zu den Abhängigkeiten einer Visual C++-Anwendung

Sie können die Projekteigenschaften anzeigen, um zu ermitteln, von welchen Visual C++-Bibliotheken eine Anwendung abhängt. (Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und wählen Sie "Eigenschaften" aus, um das Dialogfeld "Eigenschaftenseiten" zu öffnen.) Unter Windows 8 und früher können Sie auch den Dependency Walker (depends.exe) verwenden, der ein umfassenderes Bild der Abhängigkeiten gibt. Für neuere Versionen von Windows bietet das Tool "Lucasg/Abhängigkeiten " ähnliche Funktionen (dies ist ein Drittanbietertool, das von Microsoft nicht garantiert wird.)

Im Dialogfeld Eigenschaftenseiten können Sie verschiedene Seiten unter Konfigurationseigenschaften überprüfen, um die Abhängigkeiten zu verstehen. Wenn Ihr Projekt beispielsweise die MFC-Bibliotheken verwendet und Sie "MFC verwenden", "MFC verwenden" in einer freigegebenen DLL auf der Seite "Konfigurationseigenschaften", "Allgemein", hängt Ihre Anwendung zur Laufzeit von MFC DLLs wie mfc<version.dll> ab. Wenn die Anwendung MFC nicht verwendet, kann sie dennoch von der CRT-Bibliothek abhängig sein, wenn Sie einen Laufzeitbibliothek-Wert von Multithreaded-Debug-DLL (/MDd) oder Multithreaded-DLL (/MD) unter Konfigurationseigenschaften > C/C++ > Codegenerierung auswählen.

Wenn Sie „depends.exe“ verwenden, können Sie eine Liste mit DLLs überprüfen, die zur Ladezeit mit der Anwendung verknüpft sind, sowie eine Liste mit den verzögert geladenen DLLs. Wenn Sie eine vollständige Liste mit DLLs erhalten möchten, die zur Laufzeit dynamisch geladen werden, können Sie die Profilerstellungsfunktion in „depends.exe“ verwenden. Hiermit können Sie die Anwendung testen, bis Sie sicher sind, dass alle Codepfade ausgeführt wurden. Nach Abschluss der Profilerstellungssitzung zeigt „depends.exe“ an, welche DLLs zur Laufzeit dynamisch geladen wurden.

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 dorthin kopieren und die Anwendung dann im Tool öffnen, sodass Sie bestimmen können, ob irgendwelche DLLs fehlen oder falsch sind.

Wenn Sie wissen, von welchen DLLs die Anwendung abhängt, können Sie bestimmen, welche davon 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 (Ermitteln der zu verteilenden DLLs).

Siehe auch

Deploying Desktop Applications (Bereitstellen von Desktopanwendungen)