gpt4 book ai didi

vb6 - 确定二进制兼容性被破坏的原因

转载 作者:行者123 更新时间:2023-12-04 21:19:22 25 4
gpt4 key购买 nike

当我尝试重建我的一个 VB6 DLL 时,我收到一个警告:

"The binary compatibility DLL or EXE contains a parameter type orreturn type whose definition can not be found"


我必须在选定的 DLL 中发布一些更改(方法内部的简单更改 - 根据 this 不会破坏兼容性)
我遵循的普遍接受的方法是将旧 DLL 维护在单独的共享目录中,并在制作新 DLL 时,将它们编译为设置为旧 DLL 集的二进制兼容性。这样做是为了在我注册新的 DLL 时不更改 GUID。这些 GUID 用作其他 DLL 中的引用,我在发布期间没有干扰这些 DLL。
我很确定我没有添加任何东西来破坏二进制兼容性规则(签名、公共(public)方法、变量等没有变化)为什么会发生这个错误?
我是不是因为不检查一些基本的东西而成为菜鸟?从早上开始就挠头。任何帮助深表感谢。
编辑:如果我的签名有任何更改,有没有一种方法可以在不比较代码的情况下知道?

最佳答案

使用您的旧 DLL 并添加 compat_他们的前缀。

基本上重命名你的MyAppDataAccess.dll文件到 compat_MyAppDataAccess.dll .

现在转到您的 ActiveX DLL 的属性并将您的项目设置为与新的 compat_MyAppDataAccess.dll 具有二进制兼容性。 ,如下所示。

现在只需构建您的 DLL 并部署它。

它应该工作。如果实际上您的二​​进制兼容性会因您的更改而被破坏,那么您将收到一条警告说明。

enter image description here

关于vb6 - 确定二进制兼容性被破坏的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15771401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com