2008-09-24 23 views
6

我正在開發一個C#程序集,它將通過COM從Delphi 7(iow,native win32,不是.net)應用程序調用。如何從本機win32應用程序調用C#COM程序集時調試它?

到目前爲止,它似乎工作。我導出了一個TLB文件,將其導入到我的Delphi項目中,並且可以創建我的C#對象並調用它的函數。

所以這很好,但很快我要去真的想要在運行時使用Visual Studio來調試C#代碼。設置斷點,遍歷代碼,所有這些東西。

我試過在創建COM對象後打破Delphi代碼,然後尋找一個VS附加到的過程,但我找不到一個。

有沒有辦法設置VS2008來做到這一點?我寧願只能打f5並讓VS啓動Delphi可執行文件,等待C#代碼被調用,然後將它自己附加到它。但我可以忍受手動附加到一個進程,我想。

只是請你不要告訴我,我必須湊合着用MessageBox.Show等

回答

10

在VS2008項目屬性頁面的「調試」選項卡上,可以選擇設置不同的開始操作。

當您按F5鍵時,可用於運行外部程序(例如您的Delphi應用程序)。

+0

哇,它的作品!謝謝。 – Blorgbeard 2008-09-24 13:12:10

9

放入方法要調試如下:

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

當你要調試,構建一個調試版本並在您的應用程序中使用它。當這段代碼運行時,會彈出一個對話框,詢問您是否要附加一個調試器。

+1

這是一個非常整潔的把戲! – Blorgbeard 2008-09-24 13:11:37

1

您可以附加到本機應用程序,並通常查看斷點,視圖堆棧,手錶等。創建COM對象後,您需要進行附加。

我創建了一個Afx MsgBox來停止應用程序的流程,然後附加調試器。