WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Есть интересный вопрос!!!

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Есть интересный вопрос!!!
Vovan опубликован 12-12-2001 19:47 MSK   Click Here to See the Profile for Vovan   Click Here to Email Vovan  
Есть одно недоразумение. У меня стоит Windows XP (если это важно) и Visual C++ 6. Я сделал одну небольшую программу, Когда я выбираю Built->Set Active Configuration и ставлю там DEBUG то всё работает нормально, но когда я ставлю Release и компилирую всё занова, то моя программа начинает работать неправильно. Не буду вдаваться в подробности, но похоже в ней половина условий или bool переменных работают неправильно. Программа не делает ничего такого, лишь читает данные из строки CString, переводит их в char, а потом анализирует. Это первый такой случай за несколько лет программирования. Пожалуйста помогите разобраться в чём дело, ведь немогу же я распространять дебагерные версии своих программ!
Kir1 опубликован 13-12-2001 12:43 MSK     Click Here to See the Profile for Kir1  Click Here to Email Kir1     
Если я не ошибаюсь, то подобные проблемы чаще всего возникают, если вы забываете инициализировать переменные, тк в отладочной версии, это происходит автоматом, а в релизе нет...можете почитать подробнее в МСДНе (Compiler Reference) о различных ключах компилятора...
Flex Ferrum опубликован 13-12-2001 13:36 MSK     Click Here to See the Profile for Flex Ferrum  Click Here to Email Flex Ferrum     
Кроме того, никогда не надо ставить реальные условия в ASSERT'ы. В том смысле, что там должны стоять только предположения, без которых программа может корректно функционировать. Пример того, как не надо делать:

ASSERT(OpenFile(fileName));

В релиз-версии эта конструкция просто проигнорируется.

DemonM опубликован 17-12-2001 18:04 MSK     Click Here to See the Profile for DemonM  Click Here to Email DemonM     
Оптимизатор может глючить, попробуй его отрубить
mishootka опубликован 17-12-2001 18:17 MSK     Click Here to See the Profile for mishootka  Click Here to Email mishootka     
Глянул я на то, как вы пишете, не мудрено, что в релизе проги валяются. К примеру, встречаются циклы:
for (int x; x < 255; x++)
{
...
}
которые в дебаге крутятся за милую душу, а в релизе выполняются "от забора и до обеда". Со временем таких ошибок становится меньше, но иногда себе не перестаешь удивляться до сих пор. 8)
bunz опубликован 17-12-2001 19:09 MSK     Click Here to See the Profile for bunz  Click Here to Email bunz     
Иногда такие проблемы возникают когда ты меняешь что-то в настройках отладочной версии и забываешь изменить то же самое в release. У меня такое часто бывает - что назвается дважды наступать на одни и те же грабли...
SUnteXx опубликован 18-12-2001 16:40 MSK     Click Here to See the Profile for SUnteXx  Click Here to Email SUnteXx     
А может вы просто не выделяете или выделяете слишком мало памяти, к примеру, для строковой переменной! В Дебаге все пучком, что не выделили - веделится, ...! Проверьте, везде ли вы выдаелили нормальное количество памяти для переменной и не заслали ли в эту переменную больше чем можно! Это, одна из распространенных ошибок! Выделил 5 байт, а заслали 6. И все, проге хана, все глючит, ... Так что проверьте!

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.