Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

[Delphi6, socket] описание ошибки сокета

Здравствуйте!
Как можно получить описание ошибки(ErrorEvent) clientsocket'а, но чтобы это
описание можно было вывести в текстбокс?

Извинятйте за дурацкий вопрос, я только учусь...

Ответить   Thu, 26 Feb 2004 20:37:39 +0200 (#90556)

 

Ответы:

Здравствуйте !

Скорее всего, поможет API - функция FormatMessage.
В первом параметре (флаги) надо установить флаг FORMAT_MESSAGE_FROM_SYSTEM.

Все :-)

--
С уважением, Вахтуров Виктор.
Информационный сайт для программистов http://SoftMaker.com.ru
Номер выпуска : 2278
Возраст листа : 159 (дней)
Количество подписчиков : 386
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/90999
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Fri, 27 Feb 2004 18:54:42 +0300 (#90999)

 

Здравствуйте Victor,

Friday, February 27, 2004, 5:54:42 PM, вы писали:

Совершенно непонятно, если честно(
Можете прислать пример?

Ответить   Sat, 28 Feb 2004 12:27:14 +0200 (#91672)

 

Здравствуйте !

Вот например, этот код :

LPVOID lpMsgBuf;

if (!FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL ))
{
// Handle the error.
return;
}

// Process any inserts in lpMsgBuf.
// ...

// Display the string.
MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION );

// Free the buffer.
LocalFree( );

Выкидывает MessageBox с описанием ошибки, полученной функцией
GetLastError().
Если вместо GetLastError() в вызове FormatMessage подставить переменную,
содержащую
код ошибки, полученный Вами, то, скорее всего, точно так же получится ее
описание
в буффере lpMsgBuf. Только, не забудите его удалять (LocalFree( lpMsgBuf )),
если
используете флаг FORMAT_MESSAGE_ALLOCATE_BUFFER.
Соответственно, эту самую строку lpMsgBuf можно использовать как угодно (в
тот же
текстбокс засунуть, например).

--
С уважением, Вахтуров Виктор.
Информационный сайт для программистов http://SoftMaker.com.ru
Номер выпуска : 2309
Возраст листа : 161 (дней)
Количество подписчиков : 383
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/92199
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Sun, 29 Feb 2004 16:11:35 +0300 (#92199)

 

Есть такой старый панковский метод в стиле использования ричедитов для
открытия файлов...
так вот о чем я..
1- нужно отключить в настройках дебагера ексепшены. тама галочку снять,
чтобы он не мешал события обрабатывать.
2- на форму кидается компонент апликэйшен эвент (закладка стандартные)
(просто нет билдера под рукой не помню как все правильно называется)
3-в нем на евенте OnException пишем какуюнибудь фигню и комментируем ее,
смысл в том чтобы функция была не пустая, иначе компилятор ее выкинит.
4-теперь начнут обрабатываться все евенты ошибок сокета.

Сей метод не есть совсем правильный, но как вариант покатит.

Sad Spirit
Номер выпуска : 2324
Возраст листа : 161 (дней)
Количество подписчиков : 381
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/92925
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   "Sad Spirit" Mon, 1 Mar 2004 12:27:12 +0500 (#92925)

 

Извини, не получится. Коды ошибок WinSock не связаны с единой
системой кодов ошибок Windows. Придется взять документацию
и самому выбирать сообщение по коду.

Если что-то изменилось, поправьте
меня пожалуйста.
Номер выпуска : 2325
Возраст листа : 161 (дней)
Количество подписчиков : 381
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/92935
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Mon, 1 Mar 2004 10:48:57 +0300 (#92935)

 

Здравствуйте !

Гм... Весьма может быть. Я только предполагал...

А, может, можно использовать флаг FORMAT_MESSAGE_FROM_HMODULE,
передав дескриптор длл-ки winsock ? Впрочем, это тоже только
предположение.

А так - все ошибки, наверняка описаны в MSDN надо просто делать
поиск по коду ошибки.

--
С уважением, Вахтуров Виктор.
Информационный сайт для программистов http://SoftMaker.com.ru
Номер выпуска : 2343
Возраст листа : 161 (дней)
Количество подписчиков : 381
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/94373
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Mon, 1 Mar 2004 22:11:28 +0300 (#94373)

 

Здравствуйте Емельянов,

Monday, March 1, 2004, 9:48:57 AM, вы писали:

А где взять эту документацию, не подскажешь?

Ответить   Mon, 1 Mar 2004 15:40:27 +0200 (#94614)

 

Хотя бы в MSDN (поищи "WSAGetLastError error codes").
Да и с Delphi ставится документация по Windows
Sockets (файл "sock2.hlp").
Номер выпуска : 2365
Возраст листа : 162 (дней)
Количество подписчиков : 379
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/94690
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Tue, 2 Mar 2004 11:22:29 +0300 (#94690)