我正在开发一个C#程序集,它将通过COM从Delphi 7(iow,原生win32,而不是.net)应用程序调用。

到目前为止,似乎有效。我已经导出了一个TLB文件,将其导入到我的Delphi项目中,我可以创建我的C#对象并调用它的函数。

这很好,但很快我就真的希望在运行时使用Visual Studio调试C#代码。设置断点,逐步执行代码,所有这些。

我在创建COM对象后试图打破Delphi代码,然后寻找VS附加的进程,但我找不到。

有没有办法将VS2008设置为执行此操作?我更愿意只能点击f5并让VS启动Delphi可执行文件,等待调用C#代码,然后将其自身附加到它上面。但我认为我可以手动附加到进程。

请不要告诉我,我必须使用MessageBox.Show等。

有帮助吗?

解决方案

在VS2008项目属性页面的Debug选项卡上,可以选择设置不同的Start Action。

当您按F5时,这可用于运行外部程序(例如您的Delphi应用程序)。

其他提示

将以下内容放在您要调试的方法中:

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

如果要调试,请构建调试版本并在应用程序中使用它。当此代码运行时,会弹出一个对话框,询问您是否要附加调试器。

您可以直接附加到本机应用程序并查看断点,查看堆栈,监视等。创建COM对象后需要附加。

在创建对象时,我放置了一个Afx MsgBox来停止应用程序的流程,然后附加调试器。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top