Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Глючная релиз-версия. 
V
    Опции темы
Bogdan1024
  Дата 17.9.2006, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: нет
Всего: 13



Напиши б я раньше и была б моя тема юбилейной smile
Вопрос:
Компилю проект (игра-аркада сбоку под ДайректДро) в вижуал студио 2003 с++/виндовс формз. В дебаг версии всё чудесно работает, а компилю в рилиз, дык всё начинает проваливаться сквозь пол (тоесть, физика перестаёт работать), хотя всё остальное работает так же само нормально как и раньше... понимаю что вопрос мало рассказывает о нюансах проблемы, но быть может кто-то сталкивался с такими явлениями когда релиз-версия глючная? Никаких #ifdef я в тех модулях с физикой не ставил (тоесть, код с++ компилировался одинаковый).


--------------------
user posted image
PM MAIL   Вверх
MoZy
Дата 17.9.2006, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 4.6.2006

Репутация: нет
Всего: 0



Обычно в дебаг версии компилер забивает на неинициализированные переменные. пишет в них ноль и все. а в релизе - бац! и случайным числом из памяти. проверь.
--------------------
Experimentia est optima rerum magistra
PM MAIL WWW ICQ   Вверх
vinter
Дата 17.9.2006, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



почитай здесь может поможет..


--------------------
Мой блог
PM MAIL WWW   Вверх
Bogdan1024
Дата 17.9.2006, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: нет
Всего: 13



Цитата(MoZy @  17.9.2006,  20:39 Найти цитируемый пост)
Обычно в дебаг версии компилер забивает на неинициализированные переменные. пишет в них ноль и все. а в релизе - бац! и случайным числом из памяти. проверь.

Разве дебаг-версия специально инициализирует всю ей доступную память нулями? По-моему так ничто не делает. Даже в бэйсике инициализируется нулями не вся память, а только переменная. А если и использовать неинициализированную переменную, дык компилятор хотя бы ворниг кинет, а приложение кинет эксцепшн.
vinter, интересная статья, спасибо за ссылку smile
Ошибка была в следующем (кстати, она и раньше появлялась у меня в дебаг-версиях, но потом внезапно исчезла и я про неё забыл).
Раньше я писал:
Код

        RECT r;
        r.top = this->y + this->wy;
        r.bottom = this->y + this->h - 1 + this->wy;
        r.left = this->x + this->wx;
        r.right = this->x + this->w - 1 + this->wx;
        sha.rectlist = &r;//rectlist - это LPRECT
        return sha;

Теперь я пишу:
Код

        RECT r;
        r.top = this->y + this->wy;
        r.bottom = this->y + this->h - 1 + this->wy;
        r.left = this->x + this->wx;
        r.right = this->x + this->w - 1 + this->wx;
        sha.rectlist = new RECT[1];
        sha.rectlist[0] = r;
        return sha;

И всё работает! Так что компилятор не виноват smile


--------------------
user posted image
PM MAIL   Вверх
Daevaorn
Дата 17.9.2006, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



Цитата(Bogdan1024 @  17.9.2006,  22:44 Найти цитируемый пост)
Разве дебаг-версия специально инициализирует всю ей доступную память нулями? 

Не всю, а переменные и выделенные куски памяти.
Цитата(Bogdan1024 @  17.9.2006,  22:44 Найти цитируемый пост)
А если и использовать неинициализированную переменную, дык компилятор хотя бы ворниг кинет

Не всегда, увы.
Цитата(Bogdan1024 @  17.9.2006,  22:44 Найти цитируемый пост)
а приложение кинет эксцепшн.

нет
PM MAIL WWW   Вверх
bsa
Дата 17.9.2006, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



А ты потом delete[] sha.rectlist; сделать не забыл?  smile 
PM   Вверх
Bogdan1024
Дата 18.9.2006, 01:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: нет
Всего: 13



Цитата
Не всю, а переменные и выделенные куски памяти

А зачем?
Цитата(Daevaorn @  17.9.2006,  21:56 Найти цитируемый пост)
Цитата(Bogdan1024 @  17.9.2006,  22:44 )а приложение кинет эксцепшн.нет

Ну, у меня от этого кидает:
int i;
std::cout << i;
bsa, забыл  smile


--------------------
user posted image
PM MAIL   Вверх
Bogdan1024
Дата 18.9.2006, 04:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: нет
Всего: 13



Я реально забыл обнулить переменные this->wy и this->wх, и ни компилятор ни программа ничего мне об этом не сказали! В этом собственно и был весь глюк. Daevaorn, ты просто суперправ!


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0527 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.