在VB6中编译DLL时“加载DLL时出错”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在VB6中编译DLL时“加载DLL时出错”相关的知识,希望对你有一定的参考价值。

我有一个使用引用的visual basic 6“.dll项目”,当单击“File-> Make dll”选项时,它应该生成一个dll文件。好吧,当点击“文件 - >制作DLL”时,我收到错误“加载DLL时出错”。

如何查看缺少哪些引用?

答案

在项目 - >参考文献下。

寻找MISSING这个词:在那些不存在的dll前面。

另一答案

我已经看到当引用的组件被重新编译而没有兼容性但先前版本的dll没有事先注销时发生这种错误,因此类型库的注册表键不会被删除,这些虚假的注册表项指向新的dll。

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

另一答案

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

另一答案

已经有一段时间了,但是从顶层菜单 - “项目” - >“参考文献”中,缺失的那些通常是高亮的,或者说它们旁边缺少。

另一答案

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

以上是关于在VB6中编译DLL时“加载DLL时出错”的主要内容,如果未能解决你的问题,请参考以下文章

尝试从C#调试到VB6会产生TYPE_E_CANTLOADLIBRARY?

VB.net编写的dll,供vb6调用时dll中的函数不可见?

通过命令行编译一个 VB6 COM DLL 每次都会得到一个不同的 CLSID

如何在VB6中创建标准DLL?

从 C 调用用 VB6 制作的 DLL

vb6:如何在连接到智能卡时包含定义的 .dll