StreamWriter-Klasse
-
Was ist denn debuggen anderes als die Fehlermeldungen vom Compiler zu verstehen und zu verbessern?
-
Compilerfehler ausbessern hat mit Debugging nichts zu tun.
-
Ja, schön und gut, aber weil ich das jetzt weiß, geht mein Programm ja trotzdem noch nicht. Kannst du mir erklären wo der Fehler liegen könnte und das evtl. mal bei dir ausprobieren?
-
3P!CF41L schrieb:
Ja, schön und gut, aber weil ich das jetzt weiß, geht mein Programm ja trotzdem noch nicht.
Aber weil du das jetzt weißt, weißt du wie du dem Problem auf die Spur kommen kannst...
-
Also ich habe mir jetzt das OllyDebug-Programm runtergeladen und ausgeführt. Dann mit dem Tool mein Programm gestartet und jetzt bin ich erst recht verwirrt! Er zeigt mir jetzt scheinbar unendlich viele RAM Adressen an, aber was fange ich jetzt damit an?
-
Visual Studio hat einen eingebauten Debugger. Lern den zu benutzen.
-
Sorry aber das hilft mir auch nicht. Wie soll ich den denn benutzen? Außerdem habe ich das Gefühl, dass du ganz genau weißt was nicht stimmt
-
So, das sagt VC++ beim Compilieren:
"StreamWriter.exe": "G:\Projekte\C++\StreamWriter\Debug\StreamWriter.exe" geladen, Symbole wurden geladen. "StreamWriter.exe": "C:\Windows\SysWOW64\ntdll.dll" geladen, Cannot find or open the PDB file "StreamWriter.exe": "C:\Windows\SysWOW64\kernel32.dll" geladen, Cannot find or open the PDB file "StreamWriter.exe": "C:\Windows\SysWOW64\KernelBase.dll" geladen, Cannot find or open the PDB file "StreamWriter.exe": "C:\Windows\SysWOW64\msvcr100d.dll" geladen, Symbole wurden geladen. Eine Ausnahme (erste Chance) bei 0x57b5d337 (msvcr100d.dll) in StreamWriter.exe: 0xC0000005: Zugriffsverletzung beim Schreiben an Position 0x013f5846. Unbehandelte Ausnahme bei 0x57b5d337 (msvcr100d.dll) in StreamWriter.exe: 0xC0000005: Zugriffsverletzung beim Schreiben an Position 0x013f5846.
Und gleichzeitig ploppt ein Fenster auf, in dem genau das nochmal steht...
-
Und wenn es stehen bleibt findest du dich im Debugger und kannst alles mögliche tun. Lern den Debugger zu benutzen (Stichworte: Breakpoint, Watch Window).
Selbst wenn ich ganz genau wüsste was der Fehler ist (was ich nicht tue da ich mir den Code nicht wirklich angeschaut hab), würd ich dir nicht helfen wenn ich's dir verrate. Debuggen ist essentiell für jeden Programmierer, in etwa so wichtig wie atmen. Wenn ich dir ersparen würde das zu lernen, würd ich dir nicht helfen sondern schaden...
-
Wie verfahre ich denn, wenn mein Programm stehen bleibt. Das Programm wird ja auch fehlerfrei compiliert, aber es kann nicht an die Position im Arbeitsspeicher schreiben. Kann man diesen Speicherplatz irgendwie resservieren?
-
Du siehst das falsch rum. Dein Programm ist fehlerhaft, erst darum versucht es an eine Stelle zu schreiben wo es nicht darf. Benutz den Gebugger um herauszufinden warum. Gibt sicher genug Tutorials wie man den Debugger benutzt...
-
Als ich gerade gegooglet habe, habe ich zumindest keins gefunden.
-
-
OK...mit den richtigen Stichworten muss man dann noch googlen
Danke, dass du die so viel Zeit in mich "investiert"
-
Nach einer Weile hin und her probieren mit Arrays und Zeigern habe ich nun das Problem, das ich nichts mehr lesen kann aus dem RAM. Im entdefekt bleibt das Programm unbrauchbar
-
3P!CF41L schrieb:
name[200] = fname[200];
Was soll das werden? So kopiert man keine C-Strings. Und überhaupt, die Mischung von char und TCHAR sieht auch sehr ungesund aus ...
und ...
void Write (char w[500]) { char WriteLine[500] = {w[500]}; //was machst Du hier und warum? fputs (w, file); }
... Entschuldigung, aber ich habe den Eindruck, dass Dir ganz wichtige Grundlagen fehlen, fang erst mal mit was einfachem an ...
-
Das ist ja eine Katast....
Lerne mal C Grundlagen!!
Denn scheinbar begreifst Du überhaupt nichts...
-
Wir sind hier nicht in der Vb Kinderecke...