Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: [C] Zeichenfolge aus Funktion zurückgeben

  Alt 13. Sep 2006, 10:45
Ah, ja die Version von ste_ett funktioniert und ich habe sie verstanden. Aber wäre es nicht sinnvoll die benötigte Länge des Buffers zurückzugeben, so dass man im Bedarfsfall entsprechend mehr Speicher reservieren kann? aslo:
Code:
len = SysErrorMessage(5, NULL, 0);
GetMem(szBuff, len)
SysErrorMessage(5,szBuf, len);
FreeMem(szBuf);
Das ist jetzt Delphi Pseudocode.

Und wie kann ich den Code in eine eigene Quellcodedatei auslagern? Ich habe ihn in eine eigene Datei kopiert MpuTools.cpp und eine entsprechende headerdatei angelegt: MpuTools.h, die ich dann mit include eingebunden habe:

Code:
#include <stdio.h>
#include <windows.h>
#include "MpuTools.h"

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

   if (SysErrorMessage(5, szBuf, sizeof(szBuf)) >0)
   {
      wprintf(L"%s", szBuf);
     MessageBoxW(0, szBuf, L"Test", 0);
   }

   return 0;
}
Das mag der Compiler jedoch nicht:
Zitat:
Fehler 1 error C2144: Syntaxfehler: 'int' sollte auf ';' folgen c:\dokumente und einstellungen\mp\eigene dateien\visual studio 2005\projects\mputools\mputools_test\mputools_test .cpp 5
OK, in der Header-Datei hat ein Semikolon gefehlt. Jetzt bekomme ich aber die fehlermeldung:
Zitat:
Fehler 1 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""unsigned long __cdecl SysErrorMessage(int,wchar_t *,unsigned long)" (?SysErrorMessage@@YAKHPA_WK@Z)" in Funktion "_main". MpuTools_Test.obj
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat