| Autor |
Nachricht |
Robert1996
Mitglied
Benutzerprofil
Anmeldungsdatum: 21.07.2011
Beiträge: 86
|
Robert1996 Mitglied
19:02:53 30.01.2012 Titel: |
StreamWriter-Klasse |
Zitieren |
Guten Abend.
Ich habe mir überlegt, die StreamWriter-Klasse aus C# und VB.Net in C++ "nachzuprogrammieren", mit den Mitteln und Kenntnissen, die mir zur Verfügung stehen. Wenn ich das Projekt compiliere, wird auch die Konsole geöffnet, jedoch kommt dann eine Meldung von VC++ 2010 EE, dass es einen Schreibfehler an Addresse 0x000 usw. gab. Hier erstmal der Code:
| C/C++ Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #include <Windows.h>
#include <iostream>
struct StreamWriter
{
private:
char name[200];
::FILE *file;
public:
void Name (::TCHAR fname[200])
{
name[200] = fname[200];
strcat (name, ".txt");
file = fopen (name, "w");
}
void WriteLine (::TCHAR wl[500])
{
char WriteLine[500] = {wl[500]};
strcat (wl, "\n");
fputs (wl, file);
}
void Write (char w[500])
{
char WriteLine[500] = {w[500]};
fputs (w, file);
}
void Close ()
{
fclose (file);
}
};
int main ()
{
StreamWriter sw;
sw.Name ("Name");
sw.WriteLine ("Zeile1");
sw.Write ("Zeile2");
sw.Close ();
system ("PAUSE");
return 0;
}
| |
| C/C++ Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #include <Windows.h>
#include <iostream>
struct StreamWriter
{
private:
char name[200];
::FILE *file;
public:
void Name (::TCHAR fname[200])
{
name[200] = fname[200];
strcat (name, ".txt");
file = fopen (name, "w");
}
void WriteLine (::TCHAR wl[500])
{
char WriteLine[500] = {wl[500]};
strcat (wl, "\n");
fputs (wl, file);
}
void Write (char w[500])
{
char WriteLine[500] = {w[500]};
fputs (w, file);
}
void Close ()
{
fclose (file);
}
};
int main ()
{
StreamWriter sw;
sw.Name ("Name");
sw.WriteLine ("Zeile1");
sw.Write ("Zeile2");
sw.Close ();
system ("PAUSE");
return 0;
}
| |
| C/C++ Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #include <Windows.h>
#include <iostream>
struct StreamWriter
{
private:
char name[200];
::FILE *file;
public:
void Name (::TCHAR fname[200])
{
name[200] = fname[200];
strcat (name, ".txt");
file = fopen (name, "w");
}
void WriteLine (::TCHAR wl[500])
{
char WriteLine[500] = {wl[500]};
strcat (wl, "\n");
fputs (wl, file);
}
void Write (char w[500])
{
char WriteLine[500] = {w[500]};
fputs (w, file);
}
void Close ()
{
fclose (file);
}
};
int main ()
{
StreamWriter sw;
sw.Name ("Name");
sw.WriteLine ("Zeile1");
sw.Write ("Zeile2");
sw.Close ();
system ("PAUSE");
return 0;
}
| |
Wie kann man das Problem beheben?
Liegt es evtl. an den verwendeten Dateitypen?
Vielen Dank schonmal im Voraus. . . |
|
|
|
 |
dot
Mitglied
Benutzerprofil
Anmeldungsdatum: 20.05.2004
Beiträge: 3888
|
dot Mitglied
19:06:53 30.01.2012 Titel: |
|
Zitieren |
Schonmal mit Debuggen versucht? |
_________________ one point of view will never reveal the entire scene.
Zuletzt bearbeitet von dot am 19:07:06 30.01.2012, insgesamt 1-mal bearbeitet |
|
 |
Robert1996
Mitglied
Benutzerprofil
Anmeldungsdatum: 21.07.2011
Beiträge: 86
|
Robert1996 Mitglied
19:16:52 30.01.2012 Titel: |
|
Zitieren |
| dot schrieb: | | Schonmal mit Debuggen versucht? |
Macht das denn nicht der Compiler beim erstellen sowieso? |
|
|
|
 |
dot
Mitglied
Benutzerprofil
Anmeldungsdatum: 20.05.2004
Beiträge: 3888
|
dot Mitglied
19:23:07 30.01.2012 Titel: |
|
Zitieren |
lol, ich glaub du hast noch nicht ganz verstanden was Debuggen ist. Empfehle schwer dass du dich mal damit beschäftigst |
_________________ one point of view will never reveal the entire scene.
Zuletzt bearbeitet von dot am 19:23:38 30.01.2012, insgesamt 1-mal bearbeitet |
|
 |
Robert1996
Mitglied
Benutzerprofil
Anmeldungsdatum: 21.07.2011
Beiträge: 86
|
Robert1996 Mitglied
19:25:17 30.01.2012 Titel: |
|
Zitieren |
Was ist denn debuggen anderes als die Fehlermeldungen vom Compiler zu verstehen und zu verbessern? |
|
|
|
 |
dot
Mitglied
Benutzerprofil
Anmeldungsdatum: 20.05.2004
Beiträge: 3888
|
dot Mitglied
19:29:47 30.01.2012 Titel: |
|
Zitieren |
Compilerfehler ausbessern hat mit Debugging nichts zu tun. |
_________________ one point of view will never reveal the entire scene.
Zuletzt bearbeitet von dot am 19:30:44 30.01.2012, insgesamt 1-mal bearbeitet |
|
 |
Robert1996
Mitglied
Benutzerprofil
Anmeldungsdatum: 21.07.2011
Beiträge: 86
|
Robert1996 Mitglied
19:48:12 30.01.2012 Titel: |
|
Zitieren |
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? |
|
|
|
 |
dot
Mitglied
Benutzerprofil
Anmeldungsdatum: 20.05.2004
Beiträge: 3888
|
dot Mitglied
19:50:31 30.01.2012 Titel: |
|
Zitieren |
| 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... |
_________________ one point of view will never reveal the entire scene.
|
|
 |
Robert1996
Mitglied
Benutzerprofil
Anmeldungsdatum: 21.07.2011
Beiträge: 86
|
Robert1996 Mitglied
20:31:00 30.01.2012 Titel: |
|
Zitieren |
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? |
|
|
|
 |
dot
Mitglied
Benutzerprofil
Anmeldungsdatum: 20.05.2004
Beiträge: 3888
|
dot Mitglied
20:33:02 30.01.2012 Titel: |
|
Zitieren |
Visual Studio hat einen eingebauten Debugger. Lern den zu benutzen. |
_________________ one point of view will never reveal the entire scene.
Zuletzt bearbeitet von dot am 20:33:26 30.01.2012, insgesamt 1-mal bearbeitet |
|
 |