![]() |
|
|
![]()
|
|
| GolIy |
|
||||||||||||||||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 5.4.2006 Репутация: нет Всего: нет |
Добрый день!
имхо указатель объявлённый
в хидере и
в cpp один и тот же. Просто екстерн в данном случае юзается для экспорта VCL объектов. Но, тогда как объяснить следующее: 1. Создаём обычный прожект. Делаем New Form. 2. Добавляем
в Unit1.cpp и
в Unit2.cpp соответственно. 3. Далее делаем к примеру так Unit1.cpp
Unit2.cpp
4. А вот здесь прикол, меняем в Unit2.cpp вместо
на
хоть это и не логчно, инклюдить спп, но компилятор хавает. Таким образом обращаемся к не екстерновскому указателю.. теперь, смотрим результат - при обращении к указателю прога падает. Теперь если поменять обратно с ".cpp" на ".h" билдер загибается... По крайней мере у меня падает, проверял на двух машинах. Builder 6.0 Build 10.166. Хотелось бы узнать ващзи соображения на этот счёт... |
||||||||||||||||
|
|||||||||||||||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Что значит "загибается" ?
Добавлено @ 18:58 И соображения насчет чего: падене программы и загибания билдера? -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| GolIy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 5.4.2006 Репутация: нет Всего: нет |
ррррр... такую мессагу откатал а залогиниться забыл, по кнопке "Назад" мемо очитилось
ладна пофик, тада в кратце -
я подробно описал шаги, что зделать чтобы он "загнулся"... можете сами глянуть... это минутная операция на 4 шаге вылезает варнинг линка: [Linker Warning] Public symbol '_Form1' defined in both module C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ and C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT2.OBJ Ну, терь я понял в чём ошибка Но всё равно, когда меняешь после этого в нормальную форму ".cpp" -> ".h" билдер жётско падает, это баг иде... |
|||
|
||||
| Vyacheslav |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Вы подробно описали шаги, как добиться того, что бы код в программе обращался к неициализированному указателю. С этим все понятно
Меня интересует, что значит "загибается" , "падает" IDE. По логике, ему глубоко наплевать, что Вы поменяли
на
и обратно. Во всяком случае я повторил Ваш эксперимент и с IDE у меня все нормально -------------------- С уважением, Вячеслав Ермолаев |
||||
|
|||||
| FFFFFFF7 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 167 Регистрация: 13.10.2006 Репутация: 2 Всего: 2 |
GolIy, можно подключать и С++ и хеад-файлы. Попробуйте код *.аш переписать в новый *.црр. Подключите его - все будет ОК. Расширение файла значения не имеет.
На счет палений - это не баг ИДЕ. это, извините, кривые руки. Ни чего.. С опытом всё приходит.=))) Удалите после изменения
удалите *.ОБЖ-файлы. Хотя они заново создаются, но все-равно удалите и компильте заново. --------------------
Да помоги кодеру, а значит - ближнему своему! |
|||
|
||||
| GolIy |
|
||||||||||||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 5.4.2006 Репутация: нет Всего: нет |
Вы правы, практического применения никакого. Просто я случайно на это наткнулся, и хочу показать всем что иде при этих действиях падает.
хм, странно. Я проверил на трёх машинах. Может отличен билд? И в вашем этот баг фиксен...
Спасибо, а то я то дурак не знал
без разницы, всё равно баг вылезает...
А я говорю - баг. И руки в данном случае руки кривые не у меня. Вот несколько нюансов, какие я заметил: При смене с цпп обратно на хидер, т.е. перед тем как появлиться баг, если убить все обжы баг вылезает, но если поменять настройки иде такие как убрать/включить кодегуард, или поменять с релиза на дебаг или наоборот баг не появляется. Ещё нюанс, код второго модуля должен быть в точности как ниже -
Если строку #include "Unit1.h" поместить ниже #pragma package(smart_init) бага не будет... Вообщем ладна, тема в принципе ни о чём.. можно на этом закончить расуждения... но если у кого то с таким же билдом и при таких же действиях бага не будет, я только одно смогу сказать - мистика P.S. Vyacheslav, вы всё спрашиваете что значит загибается: сначала такая хрень, как при сработанном ассерте потом любимое окно Отправлять/Не отправлять причём если тыркать Не отправлять оно будет появляться сново и снова и тут тока три кнопки в помощь |
||||||||||||
|
|||||||||||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Все равно непонятно. Есть программа, есть Builder(тоже программа). Ваша программа падает. Это понятно. А Builder когда падает? Когда Вы пытаетесь собрать программу, когда пытаетесь запустить на выполнение из Builder или просто в момент редактирования кода?
Что Вы запускали, когда пытались построить приложение Make или Build? Хотелось бы и получить текст ошибки, выдаваемой при этом. Ну и последнее. Builder как и любая программа имеет ошибки. Я сам несколько ошибок отрепортил Borland'у и часть из них получили весьма высокий рейтинг. Но те ошибки были получены в результате работы, а не в результате непонятных экспериментов. Так что увлекаться поиском багов подобным образом не стоит. -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
При изменении таких настроек автоматически удаляюстя все *.obj файлы и сам exe попробуй проделать такоеже вручную и запустить заново -------------------- Ни цего не понимаю |
|||
|
||||
| GolIy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 5.4.2006 Репутация: нет Всего: нет |
сначала окно с мессагой
Assertion failed: 0, file C:\src\ilink\modmap.c, line 177 затем Abnormal program termination Если это был Run то ещё вылезет отправлять/не отправлять... По Build бага нет, по Make есть. Баг вылезает именно на том моменте когда должно появиться Make done. Но оно не появляется, а вылазят окна что описал выше.... Насчёт вашего последнего абзаца, я абсолютно с вами согласен, за исключением того, что
Я тоже её получил в результате работы, у меня не было такого желания - найти баг Вообщем я жалею, что вообще создал тему, тем более что ни у кого больше не возникает такого... Видать я не так тыркаю ф9 Удалите тему плз. |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |