我们如何使用 WPF/C# 可执行文件调试 DLL(使用本机 C/C++ 构建)源代码?

How can we debug DLL (bulit with native C/C++) source with WPF/C# executable?

假设我们有 WPF/C# 个名为 A (A.exe) 的项目。 它使用用 C++/CLI 构建的 DLL;这是项目 B (B.Dll) 项目 B 依赖于项目 D,它也是一个使用原生 C/C++( D.Dll) 构建的 DLL。

只需 A.exe -> 使用 B.Dll -> 使用 D.Dll

这里是我的原生环境是 - Windows 10 ,Visual Studio 2017 ,Visual C/C++ 141 .NET 4.6.1/4.7.1.

请注意,C++/CLI (CLR) 项目是本机 C/C++ 函数的包装器,这意味着它被用作本机 C/C++WPF/C# 以及在一个 Visual Studio 解决方案下构建的所有项目,因此各自的项目是添加为对其他项目的引用。

启动程序就是上面提到的A.exe也就是WPF/C#project.

问题是我无法调试 C/C++ 而 运行 项目到 Visual Studio 2017.

以下我已经尝试过的事情:

至少在 C++ 代码上标记的单个断点上,我无法中断执行。 请帮助解决这个问题。

谢谢。

每个项目的目标输出文件名应该不同, 否则首先加载的模块的符号将对调试器可见。 在我的例子中,AD 具有相似的目标输出文件名(不暗示项目名称)。由于 A 是目标可执行文件,它的 pdb 会覆盖项目 Dpdb。 尽管如此,配置我在问题中提到的东西是明智的。