Страница 1 из 1

Несовпадение контрольной суммы ObjInterface

Добавлено: 24 мар 2015, 17:19
Maverick
Приветствую коллеги!
Продолжаю собирать коллекцию ошибок отработки скомпилированных интерфейсов и способы их решения.

Итак:
1. Пересобираю ранее разработанный алгоритм (как потомок oAlgoritm_Sys)
2. Указываю его имя в UserAlgor.lst
3. При настройке алгоритмов расчета, при выполнении ф-ии перерегистрации алгоритмов, при попытке регистрации моего алг. получаю сообщение
"Возникло необработанное исключение ExIfcBadCheckSum(ExRef) в<Имя_моего_интерфейса>несовпадение контрольной суммы ObjInterface ( 0 )"

Ранее этот алгоритм нормально работал, и, в принципе, если подключить старый ресурсник, в который он ранее был скомпилен, и перерегистрировать, то запись о нем нормально появляется в списке системных алгоритмов. Просто возникла насущная необходимость пересобрать ресурс, в который он входит...
С чем может быть связана данная ошибка и как ее побороть?

Re: Несовпадение контрольной суммы ObjInterface

Добавлено: 24 мар 2015, 17:28
Den
см доку по vip-у
Для обеспечения совместимости интерфейсов и исключения ситуаций, в которых использующий и используемый интерфейсы откомпилированы с различными описаниями объектных интерфейсов, для каждого объектного интерфейса вычисляется 32-разрядная контрольная сумма, учитывающая прототипы и имена всех методов, свойств и индексов данного интерфейса.

Во время компиляции используемого интерфейса в ресурсе сохраняется его описание, содержащее контрольные суммы объектных интерфейсов.

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

Re: Несовпадение контрольной суммы ObjInterface

Добавлено: 24 мар 2015, 17:35
Maverick
Денис, спасибо за наводку. Буду разбираться.

Re: Несовпадение контрольной суммы ObjInterface

Добавлено: 24 мар 2015, 20:27
Maverick
Все ОК. Действительно, подключал не ту версию VIH. Все срослось.

Денис, спасибо. Жаль, плюсомет не работает :-)

Re: Несовпадение контрольной суммы ObjInterface

Добавлено: 26 мар 2015, 00:14
LaaLaa
А еще вроде бы можно VIH не подключать, а грузить в компилятор описания объектов из ресурсов. Если указать параметр LoadIds

см.
http://www.tyumbit.ru/gal_forum/viewtop ... 112#p63112