【问题标题】:Trying to make a .dll plug-in but the debugging through program gives The error尝试制作.dll插件但通过程序调试给出错误
【发布时间】:2013-06-15 01:11:32
【问题描述】:

好吧,正如标题所说,我正在尝试为名为“EuroScope.exe”的程序制作一个.dll 插件。在最初的几天里,我只是在尝试使用模板制作一个模板(MFC DLL 和使用共享 MFC DLL 的常规 DLL)。

当失败时(当时我不明白为什么),我尝试按照指南制作专门用于该程序的插件,即使我从示例中打开了一个插件,我也无法启动它.如果我构建然后在程序中打开 .dll 它可以工作,但问题是,我需要从头开始,所以我迫切需要使用断点进行调试和测试。问题就在这里,当我通过“EuroScope.exe”调试它时,它说 “'Euroscope.exe' 的调试信息找不到或不匹配。二进制文件不是用调试信息构建的。你想继续调试?YES NO?”,断点显示“断点当前不会被命中。没有为此文档加载任何符号”。我已经为此搜索并完成了数百个解决方案,但没有任何效果(不是“重新安装 Visual Studio”,但是因为我个人讨厌那个解决方案,而且我的 Visual Studio 在其他领域运行良好)。

我所期望的,正如指南所说:“可以调试插件。在项目属性对话框中,将 Euroscope 指定为要执行的命令,然后去加载 DLL 的调试版本。你将能够在您的 DLL 中定义断点并正常调试”

我对此感到非常沮丧,因为这是为了我的论文,因为这个问题我在浪费时间,我什至无法开始制作插件本身......

请帮帮我

谢谢

P.S: 1 有关该问题的更多信息。调试时(我点击是那个问题)它说:

'EuroScope.exe' (Win32): Loaded 'D:\Thesis\Euroscope\EuroScope.exe'.Module was built without symbols.
EuroScope.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ntdll.dll'.Symbols loaded.
'EuroScope.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel32.dll'.Symbols loaded.
....
....
'EuroScope.exe' (Win32): Loaded 'D:\Thesis\Euroscope\EuroScopePlugInDll.dll'.Cannot find or open the PDB file.
'EuroScope.exe' (Win32): Loaded 'C:\Windows\winsxs 22-\x86_microsoft.vc80.mfc_1fc8b
...

你认为这些线与问题有关吗?

【问题讨论】:

    标签: c++ plugins dll visual-studio-2012


    【解决方案1】:

    当您调试不是您构建的程序时,您显示的输出消息是正常的。它们并不表示错误,只是不能在非调试代码中设置断点。

    我假设 EuroScopePlugInDll.dll 是您的项目并且它构建成功。为了能够对其进行调试: (1) 确保您正在构建调试配置,而不是发布配置。 (2) 确保你的build生成的dll文件和pdb文件在同一个目录下。您可能必须将它们移动到与 EuroScope.exe 相同的目录。这样你就可以在 dll 源代码中设置断点了。

    【讨论】:

    • 不,EuroScopePlugInDll.dll 它是一个库,为插件制造商提供了许多功能。我将 EuroscopePlugInDll.lib 添加到 Dependencies 并将 EuroscopePlugIn.h 添加到我的 .dll 的头文件中。
    • 运气不好,按照你所说的,我找到了一个我认为的解决方案:我调试并在程序启动时将插件的 .dll 加载到程序中(而不是将其复制到Euroscope.exe 的同一文件夹)。我还将 EuroScopePlugInDll.dll 复制到 .lib 和 .h 的同一文件夹中,并将其添加到调试的路径中。从那时起,一些断点似乎正在工作(那些没有工作的断点可能有一些理由不这样做)。非常感谢 ScottMcP
    猜你喜欢
    • 1970-01-01
    • 2012-05-31
    • 1970-01-01
    • 2017-04-01
    • 2017-07-20
    • 2014-03-30
    • 2013-10-13
    • 1970-01-01
    • 2020-03-12
    相关资源
    最近更新 更多