当C#COM程序集';正在从本机win32应用程序调用?

当C#COM程序集';正在从本机win32应用程序调用?,c#,.net,windows,delphi,com,C#,.net,Windows,Delphi,Com,我正在开发一个C#程序集,它将通过Delphi7(iow,本机win32,而不是.net)应用程序中的COM调用 到目前为止,它似乎奏效了。我已经导出了一个TLB文件,并将其导入到我的Delphi项目中,我可以创建我的C#对象并调用它的函数 这很好,但很快我将真的想使用Visual Studio在C代码运行时调试它。设置断点、单步执行代码等等 我曾尝试在COM对象创建后插入Delphi代码,然后寻找VS要附加到的进程,但我找不到 有没有办法设置VS2008来实现这一点?我更希望能够点击f5,让V

我正在开发一个C#程序集,它将通过Delphi7(iow,本机win32,而不是.net)应用程序中的COM调用

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

这很好,但很快我将真的想使用Visual Studio在C代码运行时调试它。设置断点、单步执行代码等等

我曾尝试在COM对象创建后插入Delphi代码,然后寻找VS要附加到的进程,但我找不到

有没有办法设置VS2008来实现这一点?我更希望能够点击f5,让VS启动Delphi可执行文件,等待调用C代码,然后将其自身附加到它上。。但我想我可以接受手动附加到进程


只是请不要告诉我我必须处理MessageBox.Show等。

在您希望调试的方法中放置以下内容:

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

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

您只需附加到本机应用程序,即可正常查看断点、查看堆栈、监视等。创建COM对象后,需要附加


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

在VS2008项目属性页的“调试”选项卡上,有一个选项可以设置不同的启动操作


当您按F5时,可以使用它来运行外部程序(例如,您的Delphi应用程序)。

它非常方便。我在编写从Excel调用的C#程序集时发现了它。