Folgender Code:
Code:
#include <stdio.h>
#include <windows.h>
TCHAR* SysErrorMessage(int ErrorCode) {
TCHAR szBuf[80];
LPVOID lpMsgBuf;
DWORD dw = GetLastError();
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
dw,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0, NULL );
wsprintf(szBuf, (LPTSTR)lpMsgBuf);
LocalFree(lpMsgBuf);
return szBuf;
}
int main(int argc, char* argv[])
{
printf(SysErrorMessage(5));
return 0;
}
Leider gelingt es mir nicht eine ganz normale Zeichenfolge beliebiger Länmge aus der Funktion zurückzugeben, so dass ich sie mit printf ausgeben kann.
Zusatzaufgabe: Wie mache ich das ganze
Unicode sicher?