Я использую winsock2 в приложении win32 C++. Я бы показал с MessageBox сетевые ошибки, которые я могу получить, вызвав WSAGetLastError(). Как я могу это сделать? Я видел FormatMessage, но я не понял, как использовать егоПолучить форматированное сообщение для кодов ошибок WSA
2
A
ответ
3
Вот как, например, следующая поиск кода ошибки в таблице сообщений системы и помещает отформатированный сообщение в LPTSTR Error
буфер.
// Create a reliable, stream socket using TCP.
if ((sockClient = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
{
DWORD err = GetLastError();
LPTSTR Error = 0;
if(FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
err,
0,
(LPTSTR)&Error,
0,
NULL) == 0)
{
// Failed in translating the error.
}
}
1
Привет вы можете использовать этот код http://www.codeproject.com/KB/tips/formatmessage.aspx
Смежные вопросы
- 1. Константы для кодов ошибок
- 2. Enum для кодов ошибок
- 3. Описание кодов ошибок NSURLErrorDomain
- 4. Список кодов ошибок Facebook
- 5. Список кодов ошибок WebLogic
- 6. Список кодов ошибок Facebook?
- 7. Создание классов исключений для разных кодов ошибок
- 8. PEAR Код кодов ошибок
- 9. Обработка кодов ошибок Hibernate?
- 10. C++ Программирование кодов ошибок
- 11. `java.lang.ClassFormatError` список кодов ошибок
- 12. Обработка кодов ошибок FTP
- 13. Обзор кодов ошибок API Google+
- 14. Каков стандарт для кодов ошибок XML-RPC?
- 15. Создать диагностическое сообщение для кодов HRESULT?
- 16. Добавление кодов ошибок в Django
- 17. autoit: каковы значения кодов ошибок для runwait?
- 18. Дифференцировать SQLExceptions - список кодов ошибок для Oracle?
- 19. Список всех кодов ошибок netsh?
- 20. Типы кодов ошибок веб-страницы
- 21. Всесторонний список кодов ошибок rsync
- 22. Как получить значение кодов ошибок из boost :: filesystem :: filesystem_error
- 23. Список кодов ошибок MySQL C++
- 24. Описания кодов ошибок, возвращаемых regsvr32
- 25. C++ Assembley встроенных кодов ошибок
- 26. Список всех кодов ошибок OLE
- 27. В поисках кодов ошибок, определенных для OneDrive потребителя
- 28. Как получить список всех кодов ошибок openssl или libcrypto
- 29. Есть ли список кодов ошибок MPMoviePlayer
- 30. Сообщение Promt для полей ошибок
это работает, но у меня есть два вопроса: зачем мне бросать & ошибка в LPTSTR, когда я могу просто написать ошибку? И должен ли я освободить память с помощью LocalFree (Error)? – Stefano
Потому что тогда вы передадите адрес указателя (который ожидает тип указателя на указатель) на другой указатель, и поскольку флаг FORMAT_MESSAGE_ALLOCATE_BUFFER' должен выделять буфер для сообщения, на которое указывает «Ошибка LPSTR». Вы должны освободить память, когда она больше не нужна. – cpx
Новые приложения должны использовать ['HeapFree()'] (https://msdn.microsoft.com/en-us/library/aa366701 (v = vs.85) .aspx) вместо 'LocalFree()'. В этом случае вы хотите «HeapFree (GetProcessHeap(), 0, Error)». https://msdn.microsoft.com/en-us/library/aa366596(v=vs.85).aspx – Tim