dll - 更改 Agilent Vee Pro 6.01 编译程序使用的 DLL

标签 dll vb6

我有一个查找特定 DLL 的可执行文件。我已经更改了DLL的源代码并重新编译了它(用VB6编写并重新编译)。替换 DLL 后,可执行文件在使用该特定 DLL 时会遇到运行时错误。当我重新编译可执行文件时工作正常。

所以我的问题是,使用相同的 DLL 路径、相同的名称和几乎相同的 DLL,为什么需要重新编译可执行文件?

这让我抓狂,所以任何想法都将不胜感激。谢谢,卡勒姆。

最佳答案

VB6(或任何 COM)DLL 本身及其公共(public)接口(interface)都有唯一的 ID,如果重新编译,这些 ID 可能会发生变化,并且绑定(bind)到旧 ID 的任何现有代码都会失败。

Tldr;在 DLL 的项目选项中勾选“二进制兼容性”,然后选择旧的工作 DLL 作为保持兼容性并重新编译的东西。

详细说明:I keep hearing about DLL hell - what is this?

关于dll - 更改 Agilent Vee Pro 6.01 编译程序使用的 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71251544/

相关文章:

c# - 从 C# .NET Windows 应用程序调用 C++ dll 时出现运行时错误

c# - 如何使用反射获取命名空间、类、方法及其参数

javascript - 将函数从 Javascript 传递到 VB6 应用程序

vb6 - 是否有必要在将 Adodb.recordset 对象设置为空之前关闭它?

c++ - 外部 header 中的未识别数据类型

c++ - COM - 实现 DllGetClassObject

ios - 在 obj c - ios 中使用 C Dll 和 lib

.net - 使用 Visual Studio 2010 将代码从 vb6 迁移到 .net 时的提示和建议

batch-file - 将 .bat 文件中变量的内容传输到 VB 中的变量

asp.net - 连接到 AS400 时如何在 ASP.Net MVC 上设置动态连接字符串用户名和密码