【问题标题】:"Error in loading DLL" when compiling DLL in VB6在 VB6 中编译 DLL 时出现“加载 DLL 时出错”
【发布时间】:2019-07-11 20:07:17
【问题描述】:

我有一个使用引用的 Visual Basic 6“.dll 项目”,当单击“文件->制作 dll”选项时,它应该生成一个 dll 文件。好吧,当点击“File->Make dll”时,我得到错误“Error in loading DLL”。

如何查看缺少哪些参考资料?

【问题讨论】:

  • 欢迎。无需在底部签名,它已经包含在您的帖子下方。你艾米也想看看FAQ
  • 你不能单步执行代码,看看它在哪里爆炸了吗?
  • 没有标记,我不能。 “Step Over”、“Step Into”、“Start”、“Start with full compile” - 所有这些都返回“Error in loading DLL”
  • 这是 vb6 的特定选项吗?我在哪里可以找到它?
  • 如果在 Win 7 下使用 UAC 运行,您是否尝试过通过“以管理员身份运行”启动 VB6?

标签: vb6


【解决方案1】:

在项目下 -> 参考。

在不存在的 dll 前面查找单词 MISSING:。

【讨论】:

  • 没有“MISSING”标记的引用,但是在构建时,我得到了提到的错误:(
  • 你安装了vs6 service pack 6吗?如果没有,请安装它,然后再试一次。
  • 已经尝试过了,但没有任何成功。能否提供下你下载的链接?
  • 这里是微软的下载链接:microsoft.com/download/en/details.aspx?id=9183
  • 也试过这个,但没有成功。问题依然存在。
【解决方案2】:

我看到当引用的组件被重新编译但没有兼容性但以前版本的 dll 事先未注册时会发生此错误,因此类型库的注册表项不会被删除并且这些是伪造的注册表项指向新的 dll。

通常我使用内部注册表清理工具处理这些问题,该工具可以根据 typelib 磁盘位置删除 typelibs/clsid/interfaces 注册。您可以尝试将引用项目的物理文件移动到磁盘上的不同位置并regsvr32 他们在那里,手动从项目文件中删除引用,重新启动 IDE 并重新打开项目,最后添加引用并在添加引用对话框点中检查该 dll 位置到新文件位置。

【讨论】:

    【解决方案3】:

    如果您没有 MISSING 引用,请尝试使用项目兼容性而不是二进制兼容性来编译项目的库。当在库层次结构中引用多个库时,VB6 可能会与二进制兼容性混淆。

    【讨论】:

      【解决方案4】:

      已经有一段时间了,但是从顶部菜单-“项目”->“参考”中,缺失的通常会突出显示或在它们旁边说缺失。

      【讨论】:

        【解决方案5】:

        在 Project -> References 中,仔细检查所有引用的位置。您的引用可能具有正确的名称,但可能指向同一 DLL 的另一个实例。

        【讨论】:

        • 对于这么古老的问题,您确实需要努力解释为什么您的建议解决方案应该有效 - 这对于已经有多个答案的问题尤其重要。
        【解决方案6】:

        在 2019 年,我的旧 xp 笔记本电脑在从 Excel VBA 迁移到 VB6 的项目中遇到了同样的错误。我阅读了上述所有答案,但无法解决问题(没有缺失的引用开始,并且在默认库的位置上没有进行太多更改)。真正解决了我的问题有点奇怪。我双击并打开了每个表单和设计器模块(基本上将其组件加载到内存中),瞧,错误消失了。我试图重现该错误,当我再次启动 IDE 时它确实会卷土重来。终于发现,罪魁祸首是有一种如此庞大且具有大量控制权的用户表单。我无法确定究竟是哪个控件导致了 dll 错误,但现在工作已经完成。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-09-13
          • 1970-01-01
          • 1970-01-01
          • 2013-10-31
          • 1970-01-01
          • 2020-02-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多