我真的一直在抨击这个谚语墙。
我有一个包含C#和C ++代码项目的解决方案。
我经常调用C ++ DLL,它们是在C#中通过P / Invoke在这个项目中编译的。没问题。据我所知,通过*.sln
文件以及C ++和C#文件的所有必需的调试器设置都已正确设置。 注意:我经常能够调试类似的P / Invoked C ++代码而没有任何问题!
当然,我想,或许,符号没有加载 - 但是,在打开模块窗口时,我发现我试图步入的DLL甚至没有列出!在我的C#程序中运行该函数确实使用了DLL(我得到了正确的输出),但是,在观看模块窗口时,DLL仍然没有出现。
有没有人知道发生了什么?
tl; dr
我在调试P / Invoked C ++方面有相当多的经验。但是,我想调试的DLL甚至没有出现在Modules列表中(所以如果VS调试器似乎完全不知道它的存在,我显然无法进入它)。
答案 0 :(得分:8)
我的猜测是你没有为非托管代码打开调试。转到Start-up项目的Properties-> Debug选项卡。选中“启用非托管代码调试”。