c#不能调试C++生成的DLL

C++生成的DLL被C#代码引用,就这么简单的一个例子,用debug方式启动,但不能进入c++源码中。两个项目都在同一个解决方案里面。

网上相关的帖子:

1)https://blog.csdn.net/chunleixiahe/article/details/53428429

2) https://blog.csdn.net/tangyanzhi1111/article/details/8597766?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-4&spm=1001.2101.3001.4242

调试方法:【dll工程和调用dll的exe工程在同一个解决方案中】
dll工程,属性-配置属性-调试-把 命令 为 调用该dll的exe工程的bin\Debug\*.exe
dll工程,属性-配置属性-调试-把 调试器类型 设置为 仅限本机
dll工程,属性-配置属性-常规-把输出目录设置为 调用该dll的exe工程的bin\Debug目录下
在dll工程中打好断点,然后重新生成dll工程,为了输出dll到设置的目录下
然后
exe工程,属性-调试-启用非托管代码调试
exe工程,设置为启动项目
好了
运行,OK
上面的步骤是参考了网上很多资料总结出来的,可能有的设置没有用,不过反正全部设置OK了之后是肯定行的

3)https://blog.csdn.net/zhousiwei/article/details/81204290?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242

4)https://docs.microsoft.com/zh-cn/visualstudio/debugger/specify-symbol-dot-pdb-and-source-files-in-the-visual-studio-debugger?view=vs-2019#BKMK_Specify_symbol_locations_and_loading_behavior

5)当前不会命中断点还未为文档加载任何符号——c#联调c++库,无法进入库断点

 https://blog.csdn.net/wangMaryann/article/details/105681962

6)https://blog.csdn.net/leo_wc/article/details/76060565 ( 工具-选项-调试 -把(启用“仅我的代码”)前面的勾去掉

7)https://bbs.csdn.net/topics/397364420

所有这些都没有解决我的问题:最后发现 工具-选项-调试 -把(启用“仅我的代码”)前面的勾去掉同时还要 使用托管兼容模式。c++项目设置中调试器类型要设置为自动(不要设置为仅限本机)。不知道为什么这样设置才可以调试从C#进入c++代码,猜想最大的原因是我的c++中还引用了另一个C#写的dll,这个DLL的引入就导致本C++项目需要clr的支持,所以调试就要用托管兼容模式和调试器类型为不仅仅限本机。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章