5

我真的一直在用头撞到众所周知的墙上。

我有一个同时包含 C# 和 C++ 代码项目的解决方案。

我经常调用 C++ DLL,它们是在这个项目中通过 P/Invoke 从 C# 编译的。没问题。据我所知,通过 *.sln 文件以及 C++ 和 C# 文件进行的所有必需的调试器设置都已正确设置。注意:我经常能够毫无问题地调试类似的 P/Invoked C++ 代码!

自然地,我想,也许符号没有加载——然而,在打开模块窗口时,我发现我试图进入的 DLL 甚至没有列出!在我的 C# 程序中运行该函数确实使用了 DLL(我得到了正确的输出),但是,在查看 Modules 窗口时,DLL 仍然没有出现。

有人知道发生了什么吗?

tl;dr --> 我在调试 P/Invoked C++ 方面有相当多的经验。但是,我希望调试的 DLL 甚至没有出现在模块列表中(因此,如果 VS 调试器似乎完全不知道它的存在,我显然无法进入它)。

提前致谢!!

干杯!

-卡达伊

4

1 回答 1

8

我的猜测是您没有为非托管代码打开调试。转到启动项目的属性->调试选项卡。选中“启用非托管代码调试”。

于 2013-03-05T22:22:05.793 回答