我有一个C ++ / CLI对象调用的本机C DLL,它是C#中WPF程序的ViewModel。我想在C DLL中设置断点。当我尝试设置它们时它们会变灰并且帮助气球说断点当前不会被击中。没有为此文档加载任何符号。
要使程序运行OK,我必须添加一个自定义构建步骤,将DLL,PDB,ILK和LIB文件复制到C#主程序的中间目录。我怀疑这与问题有关。
当我查看已加载模块的列表(Debug - Windows - Modules)时,在我知道已加载DLL并且其中的某些函数被执行的点之后,我看不到DLL。我看到了C#主程序和调用C DLL的C ++ / CLI模块。
所有这些项目都在同一个解决方案中 - 我是否需要运行单独的解决方案实例才能调试DLL?理想情况下,我希望能够调试本机DLL以及调用GUI代码。
感谢
答案 0 :(得分:9)
由于您在托管代码中的入口点,您需要设置以下选项: 在Visual Studio中 - >进入项目 - >属性 - >调试 - > 启用无人值守代码调试< - 已检查
答案 1 :(得分:1)
现在,12 年后@Scott Weinstein 他的回答的本质仍然有效。 至少在 Visual Studio 2019 中只重命名了一些东西。
为了帮助您,比我自己更快,这里是您正在寻找的设置:
Visual Studio 2019
-> Solution Explorer
-> your start-up project
-> properties
-> Debug
-> 检查 Enable native code debugging