3

我有一个由 C++/CLI 对象调用的本机 C DLL,该对象是 C# 中 WPF 程序的 ViewModel。我想在 C DLL 中设置断点。当我尝试设置它们时,它们是灰色的,并且帮助气球说断点当前不会被命中。没有为此文档加载任何符号。

为了让程序正常运行,我必须添加一个自定义构建步骤,它将 DLL、PDB、ILK 和 LIB 文件复制到 C# 主程序的中间目录。我怀疑这与问题有关。

当我查看加载的模块列表(调试 - Windows - 模块)时,在我知道 DLL 已加载并执行其中的一些函数之后,我看不到 DLL。我看到了 C# 主程序和调用 C DLL 的 C++/CLI 模块。

所有这些项目都在同一个解决方案中 - 我是否需要运行解决方案的单独实例才能调试 DLL?理想情况下,我希望能够调试本机 DLL 以及调用 GUI 代码。

谢谢

4

2 回答 2

10

由于您在托管代码中的入口点,您需要设置以下选项:在 Visual Studio-> 入口项目-> 属性-> 调试-> 启用非托管代码调试<- 选中

于 2009-04-19T17:26:14.907 回答
1

现在,12 年后@Scott Weinstein 的本质他的回答仍然有效。至少在 Visual Studio 2019 中,只有一些东西被重命名了。

为了帮助您,比我自己更快,这里是您正在寻找的设置:

Visual Studio 2019-> Solution Explorer-> your start-up project-> properties-> Debug-> 检查Enable native code debugging

于 2021-06-08T16:57:58.230 回答