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


Автор: Darked 3.6.2005, 08:53
Доброе время суток.
Встала задача перевода консольного приложения в виндовое, и нужно переписать строки:
Код

       fprintf(stderr, "ERROR : decode_tagged_field_image :  ");
       fprintf(stderr, "HLL field not found in ");
       fprintf(stderr, "record index [%d] [Type-%d.%03d]\n",
               imgrecord_i+1, imgrecord->type, HLL_ID);
       return(-5);

Я их переписал так:
Код

     char buff[300];
     sprintf(buff, "ERROR : decode_tagged_field_image : HLL field not found in record index [%d] хType-%d.%03d]",
     imgrecord_i+1, imgrecord->type, HLL_ID);
     errHandler(buff);
     
     ... 

#include <Windows.h>

void errHandler(char* errDescript)
{
    MessageBox(NULL, (LPCSTR)errDescript, "an2k error", MB_OK);
}



Но смотрю, и код мне жутко не нравится!!! Подскажите пjжалуqста, как выделить массив под описание равный размеру описания, а не char buff[300]. Да и вообще может кто какую идею подскажет как - это сделать по - другому.
Заранее спасибо.

Автор: bel_nikita 3.6.2005, 08:59
использовать std::string smile
А чем так char buff[300]; плох?

Автор: Darked 3.6.2005, 09:15
Да хотелось бы создавать массив размером равным кол - ву символов.

Автор: Alastis 3.6.2005, 09:33
Код

char * buf = new char [300];
?

Автор: bel_nikita 3.6.2005, 09:56
Darked
Цитата
Да хотелось бы создавать массив размером равным кол - ву символов
Зачем?
Это стековая переменная и она при выходе из функции будет разрушена

Автор: np9mi7 4.6.2005, 20:43
Цитата
использовать std::string smile
bel_nikita, а чего ты взял что он в с++? По коду этого обработчика можно подумать что он написан на чистом с.


Darked, если это обработчик ошибок да ещё и в Windows может использовать Exceptions?

Автор: Darked 6.6.2005, 07:44
np9mi7
Да exceptions я думаю незачем, можно обойтись простой обработкой ошибок.
А пишу я на с++.

Автор: Guest 6.6.2005, 09:58
В таком случае, std::string тебе в помощь. Или можно написать свой велосипед.

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