Einzelnen Beitrag anzeigen

Benutzerbild von ste_ett
ste_ett

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

Re: [C] Zeichenfolge aus Funktion zurückgeben

  Alt 13. Sep 2006, 11:04
Code:
#include <stdio.h>
#include <windows.h>


TCHAR* SysErrorMessage(int ErrorCode) {
   TCHAR szBuf[80];
   LPVOID lpMsgBuf;
//   DWORD dw = GetLastError();
   DWORD dw = ErrorCode;

   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("%s", SysErrorMessage(5));
   return 0;
}
- übergebenen Wert aus "ErrorCode" wird jetzt zur Umwandlung genommen
- Ausgabe geändert in "printf("%s", SysErrorMessage(5));"

Ich würde einen Char-Array als Parameter übergeben, in den du schreibst, oder du holst Speicher innerhalb der Funktion und gibst ihn nach dem Aufrufen wieder frei.
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

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