【问题标题】:Stepping between managed and unmanaged code in Visual Studio在 Visual Studio 中的托管代码和非托管代码之间切换
【发布时间】:2012-12-13 18:23:34
【问题描述】:

共有三个项目:

在打开项目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 的函数调用仍然会被跨步,并且永远不会进入。

注意:

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

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

感谢您的帮助或建议!

【问题讨论】:

    标签: c++ c debugging clr fann


    【解决方案1】:

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

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

    【讨论】:

    • 工作!谢谢!我确定它一定是工具->选项中的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-24
    相关资源
    最近更新 更多