我真的一直在把头撞在那堵谚语的墙上。
我有一个包含C#和C ++代码项目的解决方案。
我经常调用C ++ DLL,它是通过P / Invoke从C#在此项目中编译的。没问题。据我所知,*。sln文件以及C ++和C#文件的所有必需调试器设置均已正确设置。注意:我通常能够以类似的方式调试P / Invoked C ++代码!
[自然,我认为可能没有加载符号-但是,在打开模块窗口时,我发现甚至没有列出要尝试进入的DLL!在我的C#程序中运行该函数确实确实使用了DLL(我得到了正确的输出),但是,在观看“模块”窗口时,该DLL仍然没有出现。
有人知道发生了什么吗?
tl; dr->我在调试P / Invoked C ++方面有丰富的经验。但是,我要调试的DLL甚至没有出现在“模块”列表中(因此,如果VS调试器似乎完全不知道它的存在,那么我显然不能进入它)。
提前感谢!
干杯!
-Kadaj
我的猜测是,您没有为非托管代码打开调试功能。转到启动项目的“属性”->“调试”选项卡。选中“启用非托管代码调试”。