Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Eine DLL (Dynamic Link Library) ist eine Bibliothek, die Code und Daten enthält, die von mehreren Apps verwendet werden können. Sie können Visual Studio zum Erstellen, Erstellen, Konfigurieren und Debuggen von DLLs verwenden.
Erstellen einer DLL
Die folgenden Visual Studio-Projektvorlagen können DLLs erstellen:
- Klassenbibliothek (.NET, .NET Framework und andere App-Plattformen)
- Windows Forms-Steuerelementbibliothek (.NET und NET-Framework)
- Dynamic-Link Library (DLL) (C++)
Das Debuggen einer Windows Forms-Steuerelementbibliothek ähnelt dem Debuggen einer Klassenbibliothek. Weitere Informationen finden Sie unter Windows Forms-Steuerelemente.
Normalerweise rufen Sie eine DLL aus einem anderen Projekt auf. Beim Debuggen des aufrufenden Projekts können Sie, abhängig von der DLL-Konfiguration, in den DLL-Code eintreten und ihn debuggen.
DLL-Debugkonfiguration
Wenn Sie eine Visual Studio-Projektvorlage zum Erstellen einer App verwenden, erstellt Visual Studio automatisch erforderliche Einstellungen für Debug- und Releasebuildkonfigurationen. Sie können diese Einstellungen bei Bedarf ändern. Weitere Informationen finden Sie in den folgenden Artikeln:
- Vorgehensweise: Festlegen von Debug- und Releasekonfigurationen
- Projekteinstellungen für eine C++-Debugkonfiguration
- Project-Einstellungen für .NET C#-Debugkonfigurationen
- Projekteinstellungen für C#-Debugkonfigurationen
- Project-Einstellungen für eine Visual Basic-Debugkonfiguration
C++-Debuggable-Attribut festlegen
Damit der Debugger an eine C++-DLL angefügt werden kann, muss der C++-Code DebuggableAttribute ausgeben.
Zum Festlegen vonDebuggableAttribute:
Wählen Sie im Projektmappen-Explorer das C++-DLL-Projekt aus, und wählen Sie das Symbol "Eigenschaften" aus, oder klicken Sie mit der rechten Maustaste auf das Projekt, und wählen Sie "Eigenschaften" aus.
Wählen Sie im Eigenschaftenbereich unter Linker>Debugging die Option Ja (/ASSEMBLYDEBUG) für eine debugfähige Assembly aus.
Weitere Informationen finden Sie unter "/ASSEMBLYDEBUG".
Festlegen von C/C++-DLL-Dateispeicherorten
Zum Debuggen einer externen DLL muss ein aufrufende Projekt in der Lage sein, die DLL, die PDB-Datei und alle anderen Dateien zu finden, die die DLL benötigt. Sie können eine benutzerdefinierte Buildaufgabe erstellen, um diese Dateien in Ihren <Projektordner\Debugausgabeordner> zu kopieren, oder Sie können die Dateien dort manuell kopieren.
Für C/C++-Projekte können Sie Header- und LIB-Dateispeicherorte auf den Projekteigenschaftenseiten festlegen, anstatt sie in den Ausgabeordner zu kopieren.
So legen Sie C/C++-Header und LIB-Dateispeicherorte fest:
Wählen Sie im Projektmappen-Explorer das C/C++-DLL-Projekt aus, und wählen Sie das Symbol "Eigenschaften" aus, oder klicken Sie mit der rechten Maustaste auf das Projekt, und wählen Sie "Eigenschaften" aus.
Wählen Sie oben im Eigenschaftenbereich unter "Konfiguration" die Option "Alle Konfigurationen" aus.
Geben Sie unter "C/C++>General>Additional Include Directories" den Ordner mit Headerdateien an.
Geben Sie unter Linker>Zusätzliche Bibliothekverzeichnisse den Ordner mit LIB-Dateien an.
Geben Sie unter Linker>Input>Additional Dependencies den vollständigen Pfad und Dateinamen für die LIB-Dateien an.
Wählen Sie OK aus.
Weitere Informationen zu C++-Projekteinstellungen finden Sie unter Referenz zur C++ Windows-Eigenschaftenseite.
Erstellen einer Debugversion
Stellen Sie sicher, dass Sie eine Debugversion der DLL erstellen, bevor Sie mit dem Debuggen beginnen. Zum Debuggen einer DLL muss eine aufrufende App in der Lage sein, die PDB-Datei und alle anderen Dateien zu finden, die die DLL benötigt. Weitere Informationen finden Sie unter How to: Set Debug and Release configurations.
Sie können eine benutzerdefinierte Buildaufgabe erstellen, um die DLL-Dateien in Ihren <aufrufenden Projektordner\Debugausgabeordner> zu kopieren, oder Sie können die Dateien dort manuell kopieren.
Stellen Sie sicher, dass Sie die DLL an ihrem richtigen Speicherort aufrufen. Dies mag offensichtlich erscheinen, aber wenn eine aufrufende App eine andere Kopie der DLL findet und lädt, trifft der Debugger niemals die von Ihnen festgelegten Haltepunkte.
Debuggen einer DLL
Sie können eine DLL nicht direkt ausführen. Sie muss von einer App aufgerufen werden, in der Regel eine .exe Datei.
Um eine DLL zu debuggen, können Sie mit dem Debuggen aus der aufrufenden App beginnen oder aus dem DLL-Projekt debuggen , indem Sie die aufrufende App angeben. Sie können auch das Direktfenster des Debuggers verwenden, um DLL-Funktionen oder -Methoden zur Entwurfszeit auszuwerten, ohne eine aufrufende App zu verwenden.
Debuggen über die aufrufende App starten
Die App, die eine DLL aufruft, kann folgendes sein:
- Eine App aus einem Visual Studio-Projekt in derselben oder einer anderen Lösung als die DLL.
- Eine vorhandene App, die bereits auf einem Test- oder Produktionscomputer bereitgestellt und ausgeführt wird.
- Befindet sich im Web und wird über eine URL aufgerufen.
- Eine Web-App mit einer Webseite, die die DLL einbettet.
Bevor Sie mit dem Debuggen der aufrufenden App beginnen, legen Sie einen Haltepunkt in der DLL fest. Siehe "Erste Schritte mit Haltepunkten". Sobald der DLL-Haltepunkt erreicht wird, können Sie den Code schrittweise ausführen und die in den einzelnen Zeilen ausgeführten Aktionen beobachten. Weitere Informationen finden Sie unter Code im Debugger navigieren.
Zum Debuggen einer DLL aus einer aufrufenden App können Sie folgende Aktionen ausführen:
Öffnen Sie das Projekt für die aufrufende App, und starten Sie das Debuggen, indem Sie "Debuggen>starten" oderF5 drücken.
oder
Fügen Sie eine App an, die bereits auf einem Test- oder Produktionscomputer bereitgestellt und ausgeführt wird. Verwenden Sie diese Methode für DLLs auf Websites oder in Web-Apps. Weitere Informationen finden Sie unter Anleitung: Verbinden mit einem laufenden Prozess.
Während des Debuggens können Sie das Fenster "Module " verwenden, um die DLLs und .exe Dateien zu überprüfen, die die App lädt. Wählen Sie zum Öffnen des Modulfensters beim Debuggen die Option">> aus. Weitere Informationen finden Sie unter How to: Use the Modules window.
Verwenden Sie das Direktfenster
Sie können das Direktfenster verwenden, um DLL-Funktionen oder -Methoden während der Entwurfszeit auszuwerten. Das Direktfenster übernimmt die Rolle einer aufrufenden App.
Hinweis
Sie können das Direktfenster zur Entwurfszeit mit den meisten Projekttypen verwenden. Es wird für SQL-, Webprojekte oder Skripts nicht unterstützt.
So können Sie beispielsweise eine Methode namens Test in der Klasse Class1 testen:
Öffnen Sie bei geöffneter DLL-Projekt das Direktfenster, indem Sie Debuggen>Windows>Direkt auswählen oder STRG+ALT+I drücken.
Instanziieren Sie ein Objekt vom Typ
Class1, indem Sie den folgenden C#-Code im Direktfenster eingeben und die EINGABETASTE drücken. Dieser verwaltete Code funktioniert für C# und Visual Basic mit entsprechenden Syntaxänderungen:Class1 obj = new Class1();In C# müssen alle Namen vollqualifiziert sein. Alle Methoden oder Variablen müssen sich im aktuellen Bereich und Kontext befinden, wenn der Sprachdienst versucht, den Ausdruck auszuwerten.
Gehen Sie davon aus, dass
TesteinenintParameter entgegennimmt, und werten SieTestim Direktfenster aus:?obj.Test(10);Das Ergebnis wird im Direktfenster ausgegeben.
Sie können mit dem Debuggen von
Testfortfahren, indem Sie einen Haltepunkt einfügen und anschließend die Funktion erneut auswerten.Sobald der Breakpoint erreicht ist, können Sie
Testin Einzelschritten durchlaufen. Nach der Ausführung vonTestbefindet sich der Debugger wieder im Entwurfsmodus.
Debuggen im gemischten Modus
Sie können eine aufrufende App für eine DLL in verwaltetem oder systemeigenem Code schreiben. Wenn Ihre systemeigene App eine verwaltete DLL aufruft und beide debuggen möchten, können Sie sowohl die verwalteten als auch die systemeigenen Debugger in den Projekteigenschaften aktivieren. Der genaue Prozess hängt davon ab, ob Sie mit dem Debuggen aus dem DLL-Projekt oder dem aufrufenden App-Projekt beginnen möchten. Weitere Informationen finden Sie unter How to: Debug im gemischten Modus.
Sie können auch eine systemeigene DLL aus einem verwalteten Aufrufprojekt debuggen. Weitere Informationen finden Sie unter Debuggen von verwaltetem und systemeigenem Code.
Verwandte Inhalte
- Debuggen von verwaltetem Code
- Vorbereiten des Debuggens von C++-Projekten
- C#-, F#- und Visual Basic-Projekttypen
- Project-Einstellungen für eine C++-Debugkonfiguration
- Project-Einstellungen für .NET C#-Debugkonfigurationen
- Projekteinstellungen für C#-Debugkonfigurationen
- Project-Einstellungen für eine Visual Basic-Debugkonfiguration
- Debugger-Sicherheit