c# - 同时调试非托管应用程序和托管 C# dll

标签 c# visual-studio-2010 com

我的设置:
Application.exe (Visual Studio 6.0 C++)
Component.dll (Visual Studio 2010 C#)
Application.exe 使用Component.dll

我希望能够同时调试我的 Visual Studio 6.0 C++ 应用程序和它使用的 Visual Studio 2010 C# 组件,但我不确定这是否可能。

我尝试从 Visual Studio 6.0 启动应用程序并在我的 Visual Studio 2010 组件解决方案中附加到该进程 (Application.exe),但是当我去附加到该进程 ( Application.exe) 它是灰色的。我尝试将 Attach To: 切换为 Native 但这不允许我附加到此进程。我的 Application.exe 在窗口中仍然是灰色的。

是否可以这样做?如果可以,怎么做?

最佳答案

一个进程只能附加一个调试器,这就是选择变灰的原因。 VS6 调试器用处不大,它对托管代码一无所知。你必须从 VS2010 调试它。右键单击您的 C# 项目、属性、调试。选择“启动外部程序”并选择您的 C++ .exe。勾选“启用非托管代码调试选项”。

在 C# 代码中设置断点,然后按 F5 启动 .exe。一旦 C++ 代码加载您的 DLL,断点指示器将变为常亮。尽管您使用的是上个世纪的 .pdb,但也可以调试 C++ 代码。您不能从托管代码单步执行到 C++ 代码,您必须设置断点。

关于c# - 同时调试非托管应用程序和托管 C# dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8070040/

相关文章:

c# - IDL 中的返回值

c++ - 无法将接口(interface)从主线程编码到工作线程

c# - 将字符串转换为字符串的泛型类型

c# - 在 XDocument 中递归查找节点

c# - 将 C# 动态与 COM 对象一起使用会为已实现接口(interface)的记录方法抛出 RuntimeBinderException

visual-studio-2010 - 用于 Visual Studio 性能测试的新浏览器

visual-studio-2010 - 如何在 Visual Studio 2010 中自动化实体数据模型向导

c# - NHibernate - 如何解决 SQL Server 中的参数计数限制

c# - 在 C# 中反序列化嵌套 JSON 数组时出现问题

c++ - STL operator= Visual Studio 2010 的行为发生变化?