模块窗口中缺少一些 DLL

Posted

技术标签:

【中文标题】模块窗口中缺少一些 DLL【英文标题】:Some DLLs missing from Modules Window 【发布时间】:2018-08-13 11:53:34 【问题描述】:

在网上找了几个小时都没有成功。

我在 Visual Studio 2013 工作。 我有一个调用 c++ 的 c# 项目的解决方案。

我在c++项目的一个函数中设置了断点,得到如下警告:

“当前不会命中断点。没有为此文档加载任何符号”。

所以我打开 Debug → Modules Window 来检查符号。而且我看到C++项目的DLL没有出现在Modules Window中。

应用程序运行正常。

我查看了应用程序的转储文件,它从正确的位置获取了 dll。

我有这个解决方案的旧版本,我可以在那里设置断点。 如果我比较两个解决方案的模块窗口的内容,旧的包含更多的 dll。

关于我应该寻找什么以及在哪里寻找解决方案的任何想法?

【问题讨论】:

如果动态加载或延迟加载 DLL,直到需要加载图像时才会加载符号。您是说 dll 已加载并完成其工作,但没有命中断点? 是的,完成的 dll 是工作。我可以看到它已加载到转储文件中。但是断点没有命中,我在模块窗口中看不到他(和其他一些 dll) 【参考方案1】:

您可能需要enable mixed mode debugging 才能同时在 C# 和 C++ 中进行调试。 这是一个项目级别的设置,因此可以解释为什么您的旧项目有效。

基本步骤应该是这样的:

    在解决方案资源管理器中,右键单击 C++ 项目并选择属性。 在“属性页”对话框中,展开“配置属性”节点,然后选择“调试”。

    将调试器类型设置为混合或自动。

    在解决方案资源管理器中,右键单击 C# 项目并选择属性。

    选择调试 在启用调试器部分选择启用本机代码调试

【讨论】:

它已经设置为自动我将其更改为固定,但我仍然无法调试 您在 C# 项目调试设置中是否勾选了“启用本机代码调试”?虽然,我不确定这是否仅在较新的 VS 版本中设置。【参考方案2】:

确认您没有在发布模式下运行。

删除 bin/obj 文件夹

清理解决方案并重建它。

希望对你有帮助

【讨论】:

以上是关于模块窗口中缺少一些 DLL的主要内容,如果未能解决你的问题,请参考以下文章

VS2010 模块列表中缺少 DLL

当我拥有它们时,Py2exe 抱怨缺少 dll?

钉钉打开,提示缺少mainframe.dll程序模块不能正常启动,怎么解决?

缺少 dll 功能检测

win10系统提示缺少MSVCP100.dll文件怎么办?

Winform部署时dll缺少依赖项问题总结