Code Bye

VS2005 C#项目调用非托管C++ dll如何调试

用 C#项目调用非托管C++项目的DLL,在调试的时候,不能进入C++项目代码的调试。
C#项目和C++项目代码都在解决方案里,C#里面调用C++导出函数,但是调试无法进入C++项目的代码。
 

30分
把你的DLL的调试命令行改为你的C#项目的编译输出。

30分
在c++项目中设置宿主程序,由c++项目启动
谢谢,蒋晟说的是 把DLL的调试命令行改为你的C#项目的编译输出路径吧,这个已经设置了,
dmh版主的方法也用过了,断点还是只在C#项目中有效,C++的代码断点无效。
我用的是在C#中 import C++DLL 的方法,调用非托管C++的导出函数。
4个月前其实调试进去过的,现在不知道哪里设置不对了

20分
把 DLL 和pdb扔到c#的bin文件夹里面。然后右键C#项目的属性里面的debug 选择本地代码(asp.net 右边的那个打上钩)
img src=”http://img.my.csdn.net/uploads/201212/27/1356592806_5978.png” alt=””>
试试吧
在C#的Debug目录打开EXE文件;
然后用VS调试里的附加到进程;
/div>

20分
编译完运行 然后选择附加到进程 然后点附加到那个选择按钮 选择调试以下代码类型。选中本机和托管就能调了

50分
>C++项目生成出来没有pdb,只有DLL、lib、exp文件
没pdb进不去代码的
去改编译设置里debug information的设置

20分
把c++项目的debug文件夹的文件全部拷到c#输出文件夹中,然后在c#项目的属性中选择“非托管代码调试”,就可以了,

20分
右键c项目设置为启动项。直接运行。会有提示选择可执行文件。选择c#debug下的exe程序就可以了。
再请问一下:编译设置里debug information的设置,在哪打开啊?我找了半天没找到。
我找到我那个项目不能调试的原因了,是C++项目的生成设置为不生成调试信息了。
在 C#的程序中 属性-》调试-》启用调试器-》启用本机代码调试
c 语言dll中的  属性-》配置属性-》调试-》附加 :选择 是, 调试类型:选择 混合 
在 C#的程序中 属性-》调试-》启用调试器-》启用本机代码调试
在 vs2013 中实验可以。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明VS2005 C#项目调用非托管C++ dll如何调试