ShowMessage(SysErrorMessage(GetLastError));
Y en Builder C++ :
ShowMessage(SysErrorMessage(GetLastError()));
Saludos.
Posted 28 February 2012 - 03:20 PM
ShowMessage(SysErrorMessage(GetLastError));
ShowMessage(SysErrorMessage(GetLastError()));
Posted 28 February 2012 - 03:25 PM
Posted 28 February 2012 - 04:34 PM
Posted 28 February 2012 - 04:50 PM
Posted 28 February 2012 - 05:37 PM
Para ilustrar un poco mas el truco, he desarrollado un ejemplo usando sólo la API, de esta forma se puede ver como funciona a bajo nivel. El asunto de encontrar la cadena asociada a un código de error.
Muestro dos ejemplos en C/C++ y Delphi:
void ShowMessageError(HWND hWnd, char* Title) { char *pBuffer; FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER, NULL, GetLastError(), 0, (char*)&pBuffer, 0, NULL); MessageBox(hWnd, pBuffer, Title, MB_OK); LocalFree(pBuffer); }
procedure ShowMessageError(hWin: HWND; Title: PCHAR); var pBuffer: pointer; begin FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM or FORMAT_MESSAGE_ALLOCATE_BUFFER, nil, GetLastError, 0, @pBuffer, 0, nil ); MessageBox(hWin, pBuffer, Title, MB_OK); LocalFree(Cardinal(pBuffer)); end;
Ejemplo de uso para ambos lenguajes:
ShowMessageError(Handle, 0);
Saludos.
Posted 29 February 2012 - 09:44 AM