Einzelnen Beitrag anzeigen

Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#7

Re: [C] Zeichenfolge aus Funktion zurückgeben

  Alt 13. Sep 2006, 10:30
Code:
#include <stdio.h>
#include <windows.h>

DWORD SysErrorMessage(const int ErrorCode, wchar_t* szBuf, const DWORD ArrayLength)
{
   DWORD result = 0;
   LPVOID lpMsgBuf = NULL;
   DWORD dw = ErrorCode;

   result = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, dw,
                     MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPWSTR)&lpMsgBuf, 0, NULL);

   if (result <= ArrayLength)
   {
      wsprintf(szBuf, (LPWSTR)lpMsgBuf);
   }
   else
   {
      result = (DWORD)-1; // ErrCode
   }

   LocalFree(lpMsgBuf);

   return result;
}

int main(int argc, char* argv[])
{
   TCHAR szBuf[80];
   ZeroMemory(szBuf, sizeof(szBuf));

   if (SysErrorMessage(5, szBuf, sizeof(szBuf) / 2))
   {
      wprintf(L"%s", szBuf);
   }

   return 0;
}
z.B. so
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat