Wie kann ich Debuggen eines C Montage # COM, wenn wird es von einer nativen Win32-Anwendung aufgerufen wird?

StackOverflow https://stackoverflow.com/questions/126868

Frage

Ich entwickle eine C # Baugruppe, die über COM aus einer Delphi 7 (IOW, nativer win32, nicht .net) Anwendung.

aufgerufen werden soll

Bisher scheint es zu funktionieren. Ich habe eine TLB-Datei exportiert, das in meinem Delphi-Projekt importiert, und ich kann meine C # Objekt und rufen seine Funktionen erstellen.

Also das ist toll, aber bald werde ich wirklich will Visual Studio verwenden, um den C # -Code zu debuggen, während es läuft. Setzen Sie Haltepunkte, Schritt für Schritt durch Code, all das Zeug.

Ich habe versucht, in dem Delphi-Code zu brechen, nachdem das COM-Objekt erstellt wird, dann für einen Prozess der Suche nach VS zu befestigen, aber ich kann nicht finden.

Gibt es eine Möglichkeit VS2008 einzurichten, dies zu tun? Ich ziehe es würde nur in der Lage sein, f5 zu schlagen und haben VS die Delphi ausführbare Datei starten, für den C # -Code warten zu nennen, und sich dann daran binden .. Aber ich konnte mit manuell Befestigung an einem Prozess leben, nehme ich an.

Just Bitte sagen Sie mir nicht, dass ich mit MessageBox.Show usw. auskommen müssen.

War es hilfreich?

Lösung

In der VS2008 Projekteigenschaften Seite, auf der Registerkarte Debuggen, gibt es eine Möglichkeit, eine andere Aktion starten zu setzen.

Damit kann ein externes Programm (zum Beispiel Ihrer Delphi app) laufen, wenn Sie F5 drücken.

Andere Tipps

Legen Sie die folgenden in der Methode, die Sie zu debuggen wollen:

#if DEBUG
    if (!System.Diagnostics.Debugger.IsAttached)
        Debugger.Launch();
#endif

Wenn Sie debuggen möchten, bauen eine Debug-Version und verwenden, die in Ihrer Anwendung. Wenn dieser Code ausgeführt wird, erscheint ein Dialog gefragt, ob Sie einen Debugger anhängen möchten.

Sie können nur auf die native Anwendung an und sehen Breakpoint, Ansicht Stapel, Uhren usw. normal. Sie werden nach dem COM-Objekt müssen anhängen wird erstellt.

Ich habe ein Afx MsgBox, wenn das Objekt erstellt wird die Anwendung des Fluss zu stoppen und dann den Debugger anhängen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top