Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: WinAPI ::  StreamWriter-Klasse  
Gehen Sie zu Seite 1, 2, 3  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
Robert1996
Mitglied

Benutzerprofil
Anmeldungsdatum: 21.07.2011
Beiträge: 86
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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 :D RAM Adressen an, aber was fange ich jetzt damit an?
dot
Mitglied

Benutzerprofil
Anmeldungsdatum: 20.05.2004
Beiträge: 3888
Beitrag 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
C/C++ Forum :: WinAPI ::  StreamWriter-Klasse  
Gehen Sie zu Seite 1, 2, 3  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.