В дневной работе я работаю над VB6 (я знаю, но не издеваюсь над огорченным ...) приложением, которое использует несколько библиотек, которые мы написали (также в вездесущем VB6). Одна из этих поддерживающих библиотек имела нагрузку частных членов, открытых через публичные свойства, и меня попросили удалить свойства и продвинуть частные переменные-члены в общедоступные поля с тем же именем, что и исходные свойства.COM-интерфейсы и двоичная совместимость
Теперь я не эксперт по COM, но у меня создалось впечатление, что каждый открытый объект в классе получает свой собственный идентификатор GUID. Поскольку мы переходим от ситуации, когда каждое значение перешло от 2 Guids (Property Get и Property Let) к одному, в котором они использовали только одно (публичное поле), я ожидал, что это нарушит совместимость с двоичными файлами - но похоже, что hasn Это сделано.
Может ли кто-нибудь объяснить, почему?
более того, почему вы хотите заменить свойства публичными полями? –
Потому что у меня были твердые инструкции, чтобы сделать это из моего технического руководства ... Помните, что я сказал о том, чтобы не издеваться над страдающим LOL? Я отказался от разума - это крестовый поход ... –