Как соотнести WSAGetLastError с кодом ошибки Socket - PullRequest
0 голосов
/ 08 марта 2012

Я вижу список кодов ошибок Winsock здесь http://msdn.microsoft.com/en-us/library/windows/desktop/ms740668(v=vs.85).aspx

Но когда я звоню WSAGetLastError(), результат -2147014848 (или 0x80072740)

Как вы соотносите эти два?спасибо

1 Ответ

0 голосов
/ 08 марта 2012

Это код ошибки Microsoft в стиле HRESULT.Младшие 16 бит - это код ошибки.Установлен старший бит, который является битом серьезности.Это указывает на сбой и, конечно, делает значение отрицательным, если интерпретируется как 32-разрядное целое число со знаком.

Старшие 16 битов (минус 5 старших битов, которые являются флагами) - это код объекта.

См. Здесь: http://en.wikipedia.org/wiki/HRESULT

Так что это ошибка в средстве 7, номер которого 0x2740 или 10048.

И это будет (благодаря http://msdn.microsoft.com/en-us/library/windows/desktop/ms740668%28v=vs.85%29.aspx)

та даа: {WSA}EADDRINUSE

Вот, пожалуйста.

...