SOLVED - C++ DLL aus VS2013 in C# mit debuggen



  • Hallo.

    Ich habe ein Projekt, bei dem ich aus C# auf eine C++ DLL zugreife.

    Die C++ DLL ist unsafe, also andere Runtime. Beide Projekte sind vorhanden. Alles wurde in VS2013 Express geschrieben.

    Wie kann ich die Dll mir Debuggen?

    Seit mir bitte nicht böse, ich weiß, dass es im Archiv eine ähnliche Anfrage bereits gibt. Diese bezieht sich jedoch auf einen Fall, wo nur die alte Dll vorhanden ist und damit (also ohne die Projektfiles) scheint es sehr umständlich zu sein. Ich hoffe, in meinem Fall ist es einfacher.

    Gruß,
    CJens



  • Das einfachste zu debuggen wäre, wenn du die Anwendung startest und den Debugger des C++ Projektes anhängst (nur den des C++ Projektes!).

    Damit kannst du dann an den entsprechenden Stellen Haltepunkte setzen und der Debugger springt die auch an, wenn der Punkt erreicht wird.



  • Entschuldigung, aber das habe ich nicht ganz verstanden.

    Eine C# GUI nutzt die DLL. Bereits beim Laden der Form wird die erste Funktion der DLL ausgelöst - sollte hier ein Fehler auftreten wäre es schön, wenn ich diesen in der DLL lokalisieren könnten. Aktuell sagt mir nur C#, dass irgendwo in der DLL ein Fehler auftritt.

    Ich entwickle die GUI und die DLL parallel.

    Also, es wäre nett, wenn Du mir das noch etwas genauer erklären könntest, denn ich verstehe das mit dem C++Projekt Debugger anhängen nicht ganz.



  • Man kann irgendwo in den Optionen (Projekt oder Solution Optionen) sowas wie Mixed Mode Debugging aktivieren, damit du native und managed Code debuggen kannst. Dann kannst du beide Projekte in deine Solution laden, Breakpoints setzen und ganz normal debuggen.



  • Ich dachte die manuelle Debugger-Auswahl ist nicht mehr nötig...?
    Oder ist das erst ab VS 2015? Oder täusche ich mich einfach? 🙂



  • https://msdn.microsoft.com/en-us/library/kbaht4dh.aspx

    Ist für VS2015 auch noch dokumentiert. Ich habs aber schon länger nicht mehr gebraucht, kanns jetzt also selber nicht bestätigen.



  • ...die Antwort war ganz einfach: Visual Studio 2015 installieren 🙂
    In Visual Studio 2013 ging es auch, aber ich musste vorher noch etwas externen Code raus schmeißen.

    Jetzt ist das Arbeiten wirklich himmlisch. Wird ein fehler in der DLL ausgelöst, springt mein C# Projekt direkt zu der Stelle in der DLL und ich kann das ganze einfach debuggen, als wäre alles in einem Projekt vorhanden. Wahnsinn...


Log in to reply