在Visual Studio中逐步处理托管代码和非托管代码

时间:2012-12-28 13:32:34

标签: c++ c debugging clr fann

有三个项目:

在项目A打开的Visual Studio 2012中,我无法通过项目B进入项目C.

项目B和C是免费和开源的,我已经成功构建了它们。

项目A引用项目B的DLL,如果找不到项目C的DLL文件,项目A将不会运行 - 所以我在项目中复制并粘贴了项目C的DLL,并将“始终复制”设置为输出。目录

在调试过程中进入时,我只能得到项目B的源代码。我甚至没有看到模块窗口中加载的项目C,我完全不明白。 如果没有包含项目C的DLL,项目将无法运行,当它包含在内时,它将无法加载,但所有调用都在工作,因此必须在某处加载。

我试图将项目C的PDB文件包含到项目A的输出目录中,但没有运气,从项目B到项目C的函数调用仍然被逐步执行,从不进入。

请注意:

  • 仅限我的代码已停用
  • 项目C以两种方式包含在项目B中 - “lib”文件(在链接器设置中)和源代码中的“.h”文件被引用...我不知道是不是问题,但你可能。

我知道必须有一种方法可以实现这一点,我有所有可用的源代码,但我不是C或C ++代码的专家,也不是调试它。我已经尝试将bin目录中的所有各种项目C文件包含到项目A中,但无法使其正常工作。

感谢您提供任何帮助或建议!

1 个答案:

答案 0 :(得分:6)

如果您使用的是Visual Studio,则必须显式启用调试非托管代码。您可以从

执行此操作

解决方案资源管理器 - > csproj - >属性 - >调试 - >启用非托管代码调试