如何从c#项目调试c ++ dll?

Ami*_*Pal 5 c# debugging dll visual-studio-2010 visual-c++

我创建了一个visual c++ 6.0 dll项目并从我的c#代码中使用它.现在我想调试dll但我无法做到.

我选择以下选项来执行此操作:

  • 把突破点放在我的visual c++项目代码中.
  • 构建DLL并将其复制到我的c#项目目录中.
  • 现在我构建我的c#项目并且dll工作正常(方法调用完美).
  • 现在我想调试dll.
  • 我跟随一个博客,并打开c++项目,并选择Attach to processvc++.
  • 但我无法找到visual c#项目的运行过程,而在任务管理器进程中可用.

在我的c#项目解决方案中,我有两个项目即

  • Web服务(我在访问URL时调用了dll方法)
  • 另一个是webform application启动Web服务.

现在请帮助我如何调试我的DLL.我已经关注了很多博客,但他们所有的博客都专注于Attaching process在我的条件下无效的方法.我该怎么办?

Han*_*ant 9

您需要启用非托管调试,在任一情况下都不会打开它,因为您的主程序是受管理的.

您可以在C#项目中使用Project> Properties> Debug选项卡>勾选"启用非托管代码调试"复选框.

您可以通过单击"选择"按钮,使用"工具">"附加到进程"来执 选择"调试这些代码类型"单选按钮并勾选Managed和Native.如果您的进程是64位,则可能不得不求助于本机.

在DLL的源代码中设置断点,并确保编写运行DLL函数的C#代码.如果仍然无法获得断点,请使用Debug> Windows> Modules并验证您是否在模块列表中看到DLL.通过右键单击获取其他疑难解答信息,选择符号加载信息.其中显示了调试器查找PDB文件的位置.