Отличия режимов Release и Debug
Программа, написана на VC++6 откомпилированная в режиме Debug работает, а в Release - "Application has encountered a problem and needs to close. We are sorry for the inconvenience." Причем, собирается без единого warning-a. Как такое можно объяснить? И как с этим бороться?
Для того, чтобы это устранить, в свойствах программы, в пункте настроек, верни все по-умолчанию (если тебе, конечно, не лень будет все опции ставить заново) - должно сработать! ;)
[QUOTE=valeriy15]Для того, чтобы это устранить, в свойствах программы, в пункте настроек, верни все по-умолчанию (если тебе, конечно, не лень будет все опции ставить заново) - должно сработать! ;)[/QUOTE] Это не проблема, в дебаге я могу откомпилить рабочую программу (спасибо Set Active Configuration :)). Мне не ясно, как это объяснить?
Ну уж на это я не смогу ответить... :(
Что ж, придется ставить диагностические сообщения. Лучше всего методом дихотомии - ставишь сообщение на середине программы, если описанная тобой ошибка выходит до диагностического сообщения, значит проблема в первой половине проги, иначе - во второй, и т. д.
при открытии режима отладки внизу могут появится сообщения типа Assert violation failed in wincore.cpp line 123
что значит, что переменная проверяемая в строке 123 файла wincore.cpp равна FALSE, чего быть не должно (например hWnd), компилятор сам откроет нужный файл и подсветит эту строку. Если это системный файл, то в нём ничего не редактируй а посмотри не пропустил ли ты в какой перегруженной функции одного параметра. (примеры системных файлов wincore - окна, dlgcore - диалоги и.т.п. то есть если ошибка в wincore за работу с файломи можешь не беспокоиться)
аналогичные сообщения можно самому выводить с помощью макроса TRACE0("сообщение")