在VB6编译DLL时出现“加载DLL时出错”的错误。

6

我有一个使用引用的Visual Basic 6 ".dll项目",当点击 "文件->生成dll" 选项时,它应该生成一个dll文件。但是,当我点击 "文件->生成dll" 时,我会得到错误提示 "加载DLL时出错"。

如何查看缺失的引用?


欢迎。底部不需要签名,它已经包含在您的帖子下方。您可能还想查看FAQ - Deanna
你不能逐步执行代码,看看它在哪里出错吗? - Mark Kram
不行,我做不到。无论是“步过”、“步入”、“启动”还是“启动并进行完整编译”,它们都会返回“加载DLL时出错”。 - Ivan
这是VB6的特定选项吗?我在哪里可以找到它? - Ivan
不,我不使用Win 7。我在Win XP下工作。但是,我也尝试了“以管理员身份运行”,但没有成功。 - Ivan
显示剩余5条评论
6个回答

2

在“项目”->“引用”下。

查找没有存在的dll前面的“MISSING:”字样。


没有“MISSING”标记的引用,但是构建时出现了上述错误:( - Ivan
1
你是否安装了VS6服务包6?如果没有,请安装它,然后再试一次。 - Lynn Crumbling
已经尝试过了,但是没有成功。你能提供一下你下载它的链接吗? - Ivan
这是微软的下载链接:http://www.microsoft.com/download/en/details.aspx?id=9183 - Lynn Crumbling
也尝试了这个,但是没有成功。问题仍然存在。 - Ivan

2
我曾见过这种错误发生在引用的组件重新编译时没有兼容性,但是之前的dll版本没有被注销,因此类型库的注册表键没有被移除,而这些虚假的注册表条目指向新的dlls。
通常我会使用一个内部的注册表清理工具来基于类型库磁盘位置删除类型库/clsid/接口注册。您可以尝试将引用的项目的物理文件移动到磁盘上的不同位置,并在那里 regsvr32 ,手动从项目文件中删除引用,重新启动IDE并重新打开项目,最后添加引用,并检查添加引用对话框中的dll位置是否指向新文件的位置。

1

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


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

对于这样一个老问题,你真的需要努力解释为什么你的建议解决方案应该有效 - 这对于已经有多个答案的问题尤其重要。 - ishmaelMakitla

0
在2019年,我在一個從Excel VBA遷移到VB6的項目中,在我的舊XP筆記本電腦上遇到了同樣的錯誤。我閱讀了所有以上的答案,但無法解決問題(首先沒有缺失的引用,並且對默認庫位置進行的更改不多)。實際上解決我的問題的方法有些奇怪。我雙擊打開每個表單和設計器模塊(基本上是將其組件加載到內存中),然後錯誤就自己消失了。我試圖重現這個錯誤,當我再次啟動IDE時它確實會回來。最後發現,有一個佔用大量控件的笨重用戶界面是罪魁禍首。我無法確定哪個控件導致了dll錯誤,但現在工作已經完成。

0

虽然已经有一段时间了,但从顶部菜单 - "项目" -> "引用",缺失的引用通常会被突出显示或在其旁边标为“缺失”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接