webentwicklung-frage-antwort-db.com.de

C++ - DLL in C # -Debuggen

Ich habe eine DLL aus C++ und möchte sie in C # debuggen, aber ich weiß nicht, wie.

Als ich das c ++ - Projekt kompilierte, bat mich Visual Studio, eine ".exe" auszuführen.

Ich nahm an, dass ich ein Projekt erstellen musste, um die DLL auszuführen.

Aber ich bin verloren, wie könnte ich es debuggen?

31
Custo

Wenn ich Sie richtig verstehe, möchten Sie ein C++ - codiertes DLL, das Sie erstellt haben, in einem C # -Projekt debuggen, das die DLL aufruft, die Sie ebenfalls erstellt haben.

Ich habe dies zuvor getan, indem ich in die Eigenschaften Ihres C # -Projekts gegangen bin und im Abschnitt "Debuggen" das Kontrollkästchen "Debuggen von nicht verwaltetem Code aktivieren" aktiviert habe. Dies sollte es Ihnen ermöglichen, in Ihre C++ - DLL einzusteigen.

34
CCicotta

Um ein C++ in C # zu debuggen, müssen Sie einige Dinge tun.

  1. Fügen Sie Ihrer Lösung für Ihre Debug-Anwendung ein C # -Projekt hinzu.
  2. Bearbeiten Sie die Eigenschaften des C # -Projekts auf der Registerkarte "Debuggen" der Projekteigenschaften auf "Debuggen von nicht verwaltetem Code zulassen".
  3. Legen Sie das C++ - Projekt als eine Abhängigkeit des C # -Projekts fest.
  4. Schreiben Sie Code in Ihr C # -Projekt, um DLL entweder mit P/Invoke oder COM zu verwenden.
  5. Setzen Sie einige Haltepunkte in Ihrem C++ - Code und führen Sie das C # -Projekt aus.
17
heavyd

Visual Studio kann keine eigene DLL ausführen.

Sie müssen die Start-EXE-Datei, die Ihre C++ - DLL verwendet, in den Eigenschaften Ihres DLL-Projekts festlegen. Sie können dies über properties -> debugging -> command tun, indem Sie den Pfad der ausführbaren Datei angeben, die Ihre dll aufruft, sowie alle erforderlichen Befehlszeilenargumente.

5
JohnIdol

Rufen Sie für VS 2017 Pro die Eigenschaftenseite des Hauptprojekts (Ihr c # -Projekt in der Projektmappe) auf, indem Sie mit der rechten Maustaste darauf klicken. Suchen Sie im Menüelement Debuggen die Option in Debugger-Modulen, und wählen Sie Debuggen von nativem Code aktivieren aus.

1
user10044681

Mithilfe der SOS-Debuggerweiterung (Son of Strike) (SOS.dll) können Sie verwalteten Code in Visual Studio debuggen, indem Sie Informationen zur internen CLR-Umgebung bereitstellen

siehe folgenden Artikel: -

MSDN ARTIKEL

0
Vivek Joshi