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

C# 同时调试非托管应用程序和托管C dll,c#,visual-studio-2010,com,C#,Visual Studio 2010,Com,我的设置: Visual Studio 6 C++ Component.dll Visual Studio 2010 C Application.exe使用Component.dll 我希望能够调试我的Visual Studio 6 C++应用程序和它同时使用的VisualStudio 2010 C组件,但我不确定这是否可能。 我试图从Visual Studio 6.0启动应用程序,并在Visual Studio 2010组件解决方案中附加到该process application.exe,但当

我的设置: Visual Studio 6 C++ Component.dll Visual Studio 2010 C Application.exe使用Component.dll

<>我希望能够调试我的Visual Studio 6 C++应用程序和它同时使用的VisualStudio 2010 C组件,但我不确定这是否可能。

我试图从Visual Studio 6.0启动应用程序,并在Visual Studio 2010组件解决方案中附加到该process application.exe,但当我转到附加到process application.exe时,它变灰。我尝试将“附加到:本机”,但这不允许我附加到此进程。我的Application.exe在窗口中仍然显示为灰色


可以这样做吗?如果可以,如何做?不能将两个不同的调试器连接到同一进程


相反,您只能将其附加到VS2010,但同时将其附加为托管和本机。

一个进程只能附加一个调试器,这就是为什么选择显示为灰色。VS6调试器没有什么用处,它对托管代码一无所知。您必须从VS2010中调试这个。右键单击C项目、属性和调试。选择启动外部程序并选择C++ .exe。勾选启用非托管代码调试选项


在C代码中设置断点,然后按F5启动.exe。一旦C++代码加载DLL,断点指示器就会变成实心的。即使你正在使用上个世纪的.PDB,也可以调试C++代码。您不能单步从托管代码到C++代码,必须设置断点。

看来,每当我试图通过VisualStudio 2010调试此断点时,我的断点都没有被击中。我的应用程序可以很好地初始化对象并调用它,但不会命中断点。它在我的C dll调用中显示消息框。这就是我如何知道它至少已经超过了我的断点。有什么想法吗?