Контрольная сумма объектного интерфейса |
Для обеспечения совместимости интерфейсов и исключения ситуаций в которых использующий и используемый интерфейсы откомпилированны с различными описаниями объектных интерфейсов, для каждого объектного интерфейса вычисляется 32 разрядная контрольная сумма, учитывающая прототипы и имена всех методов, свойств и индексов данного интерфейса.
Во время компиляции используемого интерфейса в ресурсе сохраняется его описание, содержащее контрольные суммы объектных интерфейсов.
При компиляции вызовов public-функций, приведений типов, обращений к свойствам запоминаются контрольные суммы ожидаемых obj-интерфейсов. Во время выполнения контрольные суммы сравниваются и при их несовпадении возбуждается исключение ExIfcBadCheckSum.