

// Funkcja zwracająca błąd:
void ErrorExit(String lpFun)
{
LPVOID lpMsgBuf;
LPVOID lpDisplayBuf;
DWORD dw = GetLastError();
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
dw,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0, NULL );
lpDisplayBuf = (LPVOID)LocalAlloc(LMEM_ZEROINIT,
(lstrlen((LPCTSTR)lpMsgBuf)+lstrlen(lpFun.t_str())+40)*sizeof(TCHAR));
wsprintf((LPTSTR)lpDisplayBuf,
TEXT("%s failed with error %d: %s"),
lpFun, dw, lpMsgBuf);
MessageBox(NULL, (LPCTSTR)lpDisplayBuf, TEXT("Error"), MB_OK);
LocalFree(lpMsgBuf);
LocalFree(lpDisplayBuf);
ExitProcess(dw);
}
//---------------------------------------------------------------------------
// gdzieś w kodzie, w miejscu z którego chcesz przechwycić wyjątek wstawiasz taki kod:
ErrorExit("Twoja treść komunikatu: "); // twoja treść komunikatu - to dowolny tekst, który opisuje błąd, resztę doda funkcja ErrorExit



Cyfrowy Baron napisał(a):Wyjątek możesz przechwycić tak: (...)

DWORD dw = GetLastError();



polymorphism napisał(a):Błąd czy wyjątek? Jeśli to drugie, patrz try...catch (ESocketError?).





Powrót do Ogólne problemy z programowaniem
Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 4 gości