Пришлось столкнуться с проблемой. Под заказ написана компонента с
использованием stl'евского vector'а. Проблема в том, что код, работающий в
BCB5 Enterprise отказывается корректно работать в BCB5 Standart. Ошибка
вываливается в memory.stl при попытке копирования свойства компонента из
вызваной формы в вызвавший его модуль (что-то в духе приведенного примера).
Standart вылетает с A/V, а Enterprise корректно все отрабатывает. В рамках
одной формы Standart так же работает как надо. Никто не сталкивался с
подобным?
Здравствуйте, greymouse, Вы писали:
G>Никто не сталкивался с подобным?
С подобным? Да каждый день в BCB6 то деструктор не вызовится то вызовется два раза то конструктор уйдет в бесконечную рекурсию то конкатенация строк вызывает конструктор по умолчанию у глобального обьекта ни какого отношения к строкам не имеющего....
Вобщем в товоем случае ИМХО надо долго и нудно трассировать и возможно перемена строк или подобное шаманство спасет ситуацию. Не исключено что ты гдето накосячил.
... << RSDN@Home 1.1 alpha 1 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
G>>Никто не сталкивался с подобным? WH>С подобным? Да каждый день в BCB6 то деструктор не вызовится то вызовется два раза то конструктор уйдет в бесконечную рекурсию то конкатенация строк вызывает конструктор по умолчанию у глобального обьекта ни какого отношения к строкам не имеющего....
Про конструктор у глобального обьекта ты правильно подметил. Я, помню, целый день убил на отладку глюка, когда после закрытия модальной формы непостижимым образом вызывался конструктор моего глобального объекта.
Вообще, подобные глюки в билдере лечатся следующими способами:
1. Удаление временных файлов компилятора и линкера и полная перекомпиляция проекта.
2. Переустановка билдера.
3. Выпрямление рук программера.
4. Переход на другую среду разработки.
Здравствуйте, WolfHound, Вы писали:
WH>С подобным? Да каждый день в BCB6 то деструктор не вызовится то вызовется два раза то конструктор уйдет в бесконечную рекурсию то конкатенация строк вызывает конструктор по умолчанию у глобального обьекта ни какого отношения к строкам не имеющего....
А примерчик такого поведения можно? Любопытно было бы пошлядеть.
Здравствуйте, Вячеслав Ермолаев, Вы писали:
ВЕ>А примерчик такого поведения можно? Любопытно было бы пошлядеть.
На рекурсивный конструктор я натыкался сам, и коллега на работе тоже. Подробностей сейчас уже не помню, то ли __fastcall забывали ставить, то ли virtual... Еще такой эффект иногда можно получить при использовании "placement new", причем даже для не VCL-объектов. Кстати, "placement new" для VCL объектов не работает впринципе, но при этом успешно компилится.