Показать сообщение отдельно
Старый 13.01.2005, 15:44   #7  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Блин! Код-то откомпилирован у потомков!
лежит где нибудь в памяти код:
ПАПА_______________________ПОТОМОК
адрес смещение переменная____адрес смещение переменная
00000 FF mapInvoiceTrans_______00000 FF mapInvoiceTrans
000FF FF vatCodeCache_________000FF FF vatCodeCache
Вы добавляете код сюда:________потомок не перекомпилирован.
001FE 0А projId________________Но при вызове он может вызвать
_____________________________метод откомпилированного родителя,
_____________________________потому и не упадет с Run-time Error
Теперь. Вы добавили код сюда:
ПАПА_______________________ПОТОМОК
адрес смещение переменная_____адрес смещение переменная
00000 FF mapInvoiceTrans________00000 FF mapInvoiceTrans
Вы добавляете код сюда:_________000FF FF vatCodeCache
00109 0А projId_________________А в потомке - ссылка на СТАРЫЕ адреса!!!
снова пошел старый код, но с
новыми адресами
00208 FF vatCodeCache

Поэтому при обращении к переменной vatCodeCache она обратиться
к переменной, определенной в родителе по адресу 000FF. И что она там найдет??
кусок совершенно другой переменной! Поэтому и вылетает с Run-time error! Что у Вас,
кстати, и произошло. Так чему здесь так удивляться?

После инкриментной перекомпиляции:
ПАПА_______________________ПОТОМОК
адрес смещение переменная_____адрес смещение переменная
00000 FF mapInvoiceTrans________00000 FF mapInvoiceTrans
00109 0А projId_________________00109 0А projId
00208 FF vatCodeCache__________00208 FF vatCodeCache

С Уважением,
Георгий.

Хм. При редактировании - все нормально. А после постинга пробелы форматирующие убрались
За это сообщение автора поблагодарили: kashperuk (5).