visual studio 2010 -如何调试c#项目中的c++ dll
本文关键字:项目 dll c++ 调试 2010 studio 何调试 visual | 更新日期: 2023-09-27 17:49:41
我已经创建了一个visual c++ 6.0 dll
项目,并从我的c#
代码中使用它。现在我想调试dll
,但我不能这样做。
我选择下面的选项来做:
- 将断点放在我的
visual c++
项目代码中。 - 构建dll并复制到我的
c#
项目目录。 - 现在我建立我的
c#
项目和dll工作正常(方法调用完美)。 - 现在我想调试
dll
。 - 我关注一个博客,打开
c++
项目,从vc++
中选择Attach to process
。 - 但是我找不到
visual c#
项目的运行进程,而它在任务管理器进程中可用。
在我的c#
项目解决方案中,我有两个项目,即
- web服务(在访问url时调用dll方法)
- 另一个是启动web服务的
webform application
。
现在请帮助我如何调试我的dll。我已经关注了很多博客,但他们都专注于Attaching process
方法,这在我的情况下不起作用。我该怎么办?
您需要启用非托管调试,在任何情况下默认情况下都不会打开它,因为您的主程序是托管的。
您可以在c#项目中使用项目>属性>调试选项卡>勾选"启用非托管代码调试"复选框。
您可以通过单击选择按钮在工具>附加到进程中执行此操作。选择"调试这些代码类型"单选按钮并同时勾选Managed和Native。如果您的进程是64位的,您可能不得不求助于本机。
在DLL的源代码中设置一个断点,并确保编写c#代码来执行DLL函数。如果您仍然无法获得断点,则使用调试> Windows>模块并验证您是否在模块列表中看到DLL。通过右键单击它,选择符号加载信息来获取其他故障排除信息。它显示了调试器在哪里查找PDB文件的跟踪。
您可以将c++项目添加到您的c#解决方案中,并直接向项目(而不是dll)添加引用,然后您将不需要复制dll。之后,只需启动c#项目的正常调试(F5),断点也将适用于c++项目。这种方式将非常适合调试。我已经尝试了这样的调试,没有改变任何其他设置