2010-03-25 152 views
20

我正在处理的.NET 3.5应用程序包含大量不同的解决方案。其中一些解决方案由托管代码(C#)组成,其他解决方案包含非托管代码(C++)。用C#编写的方法与用C++编写的方法进行通信。我试图追踪这些不同功能之间的依赖关系,并且认为在包含我的C++函数的解决方案上设置了断点。其中一个C#解决方案具有启动项目。我在调试模式下运行这个解决方案,期望在我的非托管代码中的断点将被击中,但没有真正发生。有人能指导我完成使用Visual Studio IDE调试混合应用程序的过程吗?在调试托管代码时调试非托管代码

感谢

回答

26

默认情况下,托管项目才会开始启用托管调试调试器。它不认为在同一解决方案中存在未管理的项目。为了进行调试,您需要明确启用非托管代码调试。

  • 右键单击该项目,并选择属性
  • 转到调试选项卡
  • 选中“启用非托管代码调试”
+0

谢谢贾里德。如果我的非托管代码在一个解决方案中,并且我的管理代码在另一个Visual Studio解决方案中,那么是否需要从两个解决方案中运行调试器才能达到断点。我做了你的建议,但我仍然无法达到断点。 – 2010-03-25 22:55:38

+0

您正在编译C++类的调试版本? – iain 2010-03-25 23:14:34

+5

@sc_ray:如果您附加到进程:在附加到进程框中,单击选择并检查“托管”和“本地”框。 – 2010-03-26 13:58:34

3
  1. 转到管理项目属性。
  2. 右键单击它并转到调试选项卡。
  3. 在该部分下有一个名为enable debugger的部分。
  4. 勾选“启用本地代码调试”选项

,那么你就可以调试本地代码。祝你好运 !!!

请参阅下面附加的图片用红色矩形突出显示。

enter image description here