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