gpt4 book ai didi

c# - 调试从非托管 C++ 调用的托管 .NET 代码

转载 作者:太空狗 更新时间:2023-10-29 20:06:36 26 4
gpt4 key购买 nike

我已经通读了 SO 上可用的解决方案,但到目前为止还没有解决我的问题。我的启动项目是一个非托管 C++ 项目(我们称之为 TestWrapper)。目标是让 TestWrapper 调用托管 C++ 项目,然后调用我的 C# 项目。这工作正常,我运行它没有问题。

但是,我的 C# 代码中出现异常。由于某种原因,断点没有命中,实际的调试中断发生在 ntdll.dll 内部。我已尝试右键单击 C# 项目并启用非托管调试,但这并不能解决问题。如果有人能指出我的解决方案,我将不胜感激。

我继续并包括项目布局:

TestWrapper (unmanaged C++) -> ManagedWrapper (managed C++) -> MyCSharpProject (C#)

我觉得它在于调试的配置,但我的知识还不够,甚至不知道从哪里开始看。

最佳答案

调试器必须决定启动时是调试 native 代码、托管代码还是 native + 托管代码。因此,您必须更改启动项目的调试器设置,而不是您遇到问题的 DLL。尝试以下操作

  • 右键单击该项目并选择“属性”
  • 导航到配置属性 -> 调试
  • 将调试器类型切换为混合

调试器设置甚至包含在 Visual Studio 的 DLL 项目中,这有点误导人。它对系统没有任何影响。

关于c# - 调试从非托管 C++ 调用的托管 .NET 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7124294/

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