Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > как создать нормальные сообщения об ошибках?


Автор: Bogdan1024 28.6.2006, 16:12
Пытался использовать функцию messagebox чтобы получать сообщения об ошибках из обработчика ошибок, но из-за интересной палитры моего приложения (делаю игру 640х480х8) на этом сообщении буквы сливаются с чёрным фоном. Что можно использовать для получения информации об ошибках кроме мэсседжбокса? 

Автор: Prehistorik 28.6.2006, 16:32
Хм... Если свою, то и мессадж бокс напиши свой... Пожалуй тебе больше ничего не поможет. Можно его реализовать в стиле строки состояния.... 

Автор: NextAlex 28.6.2006, 16:50
сбрасывай в файл
могу подогнать класс лога ошибок ... точнее не только ошибок ... 

Автор: NiJazz 28.6.2006, 19:57
А GetLastError чем не подходит? GetLastError + FormatMessage, а затем MessageBox.  smile  

Автор: Bogdan1024 29.6.2006, 18:05
Prehistorik, не, не получится потому что ошибки могут возникнут при или из-за отрисовки DirectX-поверхности.
NextAlex, если это не составит труда скинь классы пожалуйста на [email protected]  

Автор: Prehistorik 30.6.2006, 08:41
Bogdan1024, а, понял в чём проблема. Но я не понимаю, зачем такие сложности со специальным классом?

Код

void AddError(char *msg)
{
   FILE *stream  fopen("C:\\error.log", "a");
   fprintf(stream, msg);
   fclose(stream);
}


Или я опять чего-то не понимаю? 

Автор: NextAlex 30.6.2006, 12:19
Prehistorik, потому что класс несколько удобнее, а в комбинации с классом работы со строками, классом работы с файлами и классом работы с директориями возможности достаточно широкие, особенно если эти возможности дописать и использовать smile. Кроме того всё это работает кроссплатформенно... 

Автор: Bogdan1024 30.6.2006, 23:40
NextAlexPrehistorik, спасибо! Сейчас разбрерусь в ваших примерах...
Класс, который мне прислал NextAlex в ататче. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)