protokolieren
-
void WriteLog(char *szMessage, ...) {
FILE *hFile;
char *szString = new char[0x400];
::memset(szString, 0, sizeof(char) * 0x400);
va_list vaArgs;va_start(vaArgs, szMessage);
vsprintf(szString, szMessage, vaArgs);
va_end(vaArgs);char *szOutput = new char[0x400];
::memset(szOutput, 0, sizeof(char) * 0x400);
sprintf(szOutput, "%s", szString);char *buffer = new char[];
char dateStr [9];
char timeStr [9];_strdate( dateStr);
_strtime( timeStr );hFile = fopen("C:\\Log.txt","a");
if(hFile) {
sprintf(buffer,"%s -- %s: %s\n",dateStr,timeStr,szOutput);
fputs(buffer,hFile);
fclose(hFile);
}delete szString;
delete szOutput;
}funktioniert nur 1-2 mal
dann stürzt prog einfach abich machs so :
WriteLog("1");
WriteLog("2");
WriteLog("3");geht nur bis 2 dannach crash...
-
Hallo
Das hat nix mit C++ zu tun. Benutze doch mal bitte code-tags.
chrische
-
wo zerstörst du "buffer" so nebenbei....
-
char *buffer = new char[]; // angelegt char dateStr [9]; char timeStr [9]; _strdate( dateStr); _strtime( timeStr ); hFile = fopen("C:\\Log.txt","a"); if(hFile) { sprintf(buffer,"%s -- %s: %s\n",dateStr,timeStr,szOutput); // uninitialisiert verwendetbei der letzten zeile knallts. ob nun im ersten, zweiten oder 20. durchlauf...
-
is doch klar das es knallt, bin grad nicht sicher ob das so ueberhaupt zulaessig ist
char *buffer = new char[];du machst einen zeiger auf einen [] ? versteh ich nicht wirklich
ich vermute das er nur einen anlegt, und da passt nunmal kein laengerer string rein
mach das lieber sochar *buffer = new char[anzahl_von_elementen]; /*...*/ delete [] buffer;