为什么公共字段和属性可以互换二进制兼容?

为什么公共字段和属性可以互换二进制兼容?,第1张

概述在白天的工作中,我使用VB6(我知道,但不要模拟受影响的……)应用程序,它使用了我们编写的许多库(也是在着名的VB6中).其中一个支持库有大量私有成员通过公共属性公开,我被要求删除属性,并将私有成员变量提升到与原始属性同名的公共字段. 现在,我不是COM专家,但我的印象是,类中的每个暴露项都获得了它自己的GUID.因为我们将从每个值从2个Guids(Property Get和Property Le 在白天的工作中,我使用VB6(我知道,但不要模拟受影响的……)应用程序,它使用了我们编写的许多库(也是在着名的VB6中).其中一个支持库有大量私有成员通过公共属性公开,我被要求删除属性,并将私有成员变量提升到与原始属性同名的公共字段.

现在,我不是COM专家,但我的印象是,类中的每个暴露项都获得了它自己的GUID.因为我们将从每个值从2个GuIDs(Property Get和Property Let)变为仅使用一个(公共字段)的情况开始,我期望这会破坏二进制兼容性 – 但它似乎没有做到了.

有谁能解释为什么?

@H_403_14@解决方法 我认为它比这更微妙.您将获得COM接口的GUID(而不是每个单独的字段/方法).据我所知,如果你当前编译的接口向后兼容你的DLL的参考版本(假设你有一个),二进制兼容性尝试解决,并且只有在它们不兼容时才更改GUID.

因此我也很惊讶它已经决定删除​​所有的get / set方法是兼容的:/

总结

以上是内存溢出为你收集整理的为什么公共字段和属性可以互换二进制兼容?全部内容,希望文章能够帮你解决为什么公共字段和属性可以互换二进制兼容?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1239150.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存