我正在开发一个C#程序集,它将通过COM从Delphi 7(iow,原生win32,而不是.net)应用程序调用。
到目前为止,似乎有效。我已经导出了一个TLB文件,将其导入到我的Delphi项目中,我可以创建我的C#对象并调用它的函数。
这很好,但很快我就真的希望在运行时使用Visual Studio调试C#代码。设置断点,逐步执行代码,所有这些。
我在创建COM对象后试图打破Delphi代码,然后寻找VS附加的进程,但我找不到。
有没有办法将VS2008设置为执行此操作?我更愿意只能点击f5并让VS启动Delphi可执行文件,等待调用C#代码,然后将其自身附加到它上面。但我认为我可以手动附加到进程。
请不要告诉我,我必须使用MessageBox.Show等。
答案 0 :(得分:11)
在VS2008项目属性页面的Debug选项卡上,可以选择设置不同的Start Action。
当您按F5时,这可用于运行外部程序(例如您的Delphi应用程序)。
答案 1 :(得分:9)
将以下内容放在您要调试的方法中:
#if DEBUG
if (!System.Diagnostics.Debugger.IsAttached)
Debugger.Launch();
#endif
如果要调试,请构建调试版本并在应用程序中使用它。当此代码运行时,会弹出一个对话框,询问您是否要附加调试器。
答案 2 :(得分:1)
您可以直接附加到本机应用程序并查看断点,查看堆栈,监视等。创建COM对象后需要附加。
在创建对象时,我放置了一个Afx MsgBox来停止应用程序的流程,然后附加调试器。