调试非托管应用程序并同时管理C#dll

Col*_*e W 2 c# com visual-studio-2010

我的设置:
Application.exe(Visual Studio 6.0 C++)
Component.dll(Visual Studio 2010 C#)
Application.exe使用Component.dll

我希望能够同时调试我的Visual Studio 6.0 C++应用程序和它使用的Visual Studio 2010 C#组件,但我不确定这是否可行.

我尝试从Visual Studio 6.0启动应用程序并附加到我的Visual Studio 2010组件解决方案中的该进程(Application.exe),但是当我转到附加到进程(Application.exe)时,它显示为灰色.我尝试切换Attach To:Native但是这不允许我附加到这个过程.我的Application.exe仍然在窗口中显示为灰色.

有可能这样做,如果是这样的话怎么样?

Han*_*ant 9

一个进程只能附加一个调试器,这就是选择灰显的原因.你几乎没有使用VS6调试器,它对托管代码一无所知.你必须从VS2010调试它.右键单击C#项目,Properties,Debug.选择"启动外部程序"并选择您的C++ .exe.勾选"启用非托管代码调试选项".

在C#代码中设置断点,然后按F5启动.exe.一旦C++代码加载DLL,断点指示器就会变为稳定.尽管您使用的是上个世纪的.pdb,但也可能调试C++代码.您不能单步从托管代码到C++代码,您必须设置断点.