gpt4 book ai didi

c++ - 在 Visual Studio 中的托管代码和非托管代码之间单步执行

转载 作者:搜寻专家 更新时间:2023-10-31 00:17:12 24 4
gpt4 key购买 nike

一共有三个项目:

在打开项目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++ 代码方面的专家,也不是调试它们的专家。我已尝试将所有各种项目 C 的文件从 bin 目录包含到项目 A,但无法使其正常工作。

感谢您的帮助或建议!

最佳答案

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

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

关于c++ - 在 Visual Studio 中的托管代码和非托管代码之间单步执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14070315/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com