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

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

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

Сообщение Maverick »

Приветствую коллеги!
Продолжаю собирать коллекцию ошибок отработки скомпилированных интерфейсов и способы их решения.

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

Ранее этот алгоритм нормально работал, и, в принципе, если подключить старый ресурсник, в который он ранее был скомпилен, и перерегистрировать, то запись о нем нормально появляется в списке системных алгоритмов. Просто возникла насущная необходимость пересобрать ресурс, в который он входит...
С чем может быть связана данная ошибка и как ее побороть?
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

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

Сообщение Den »

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

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

При компиляции вызовов public-функций, приведений типов, обращений к свойствам запоминаются контрольные суммы ожидаемых obj-интерфейсов. Во время выполнения контрольные суммы сравниваются и при их несовпадении возбуждается исключение ExIfcBadCheckSum.
Когда бы ни случилась у вас исключительная ситуация с несовпадением контрольной суммы, знайте - описание объектного интерфейса, которое использовали вы, и описание, с которым собирались галактические сырцы, различаются. Пусть хотя бы на одну букву, но различаются. И единственный выход - получить актуальное описание (.vih или .obj-файл)
Все же наверняка у Вас не актульный/подправленный vih....
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

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

Сообщение Maverick »

Денис, спасибо за наводку. Буду разбираться.
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

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

Сообщение Maverick »

Все ОК. Действительно, подключал не ту версию VIH. Все срослось.

Денис, спасибо. Жаль, плюсомет не работает :-)
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
LaaLaa

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

Сообщение LaaLaa »

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

см.
http://www.tyumbit.ru/gal_forum/viewtop ... 112#p63112
Ответить