加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 07:28:21 所属栏目:百科 来源:网络整理
导读:当我尝试重建我的一个VB6 DLL时,我收到一个警告: “The binary compatibility DLL or EXE contains a parameter type or return type whose definition can not be found” 我必须在选定的DLL中发布一些更改(方法内部的简单更改 – 根据this不会破坏兼容性)
当我尝试重建我的一个VB6 DLL时,我收到一个警告:

“The binary compatibility DLL or EXE contains a parameter type or
return type whose definition can not be found”

我必须在选定的DLL中发布一些更改(方法内部的简单更改 – 根据this不会破坏兼容性)

我所遵循的普遍接受的方法是将旧的DLL保存在单独的共享目录中,并在制作新的DLL时,使用设置为旧的DLL集的二进制兼容性来编译它们.这样做是为了在我注册新DLL时不更改GUID.这些GUID在其他DLL中用作引用,我在发布过程中没有受到干扰.

我很确定我没有添加任何东西来打破二进制兼容性规则(签名,公共方法,变量等没有变化)为什么会出现这个错误?

我不是一个基本的东西,我是一个菜鸟吗?从早上起我的头.任何帮助深表感谢.

编辑:如果我的签名发生了变化,有没有一种方法可以在不比较代码的情况下知道?

解决方法

获取旧的DLL并为它们添加compat_前缀.

基本上将MyAppDataAccess.dll文件重命名为compat_MyAppDataAccess.dll.

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

现在只需构建您的DLL并进行部署.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读