Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Jonsen

Frischling

  • »Jonsen« ist der Autor dieses Themas

Beiträge: 36

Wohnort: Unter der Brücke

  • Private Nachricht senden

1

25.01.2009, 19:09

problem mit iostream und fstream

Hi

Ich mach grad das Beispiel mit dem ersten Dreieck!

Jetzt will ich überprüfen, ob eine cfg-Datei mit den Initialisierungsdaten von D3D existiert:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    ifstream datei;
    datei.open(cFilePath, ios::in);
    if(datei.is_open())
    {
        // Datei existiert => einlesen
        datei.close();
        GetPrivateProfileStruct("Video", "Settings", &sParams, sizeof(SDirect3DParameters), cFilePath);
    }
    else
    {
        // Datei existiert nicht => Werte einholen und speichern
        if(GetDirect3DParameters(&sParams))
            return TB_ERROR;
        else
            WritePrivateProfileStruct("Video", "Settings", &sParams, sizeof(SDirect3DParameters), cFilePath);
    }



So

Dazu müsste ich iostream und fstream inkludieren:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <Windows.h>
#include <StdIO.h>
#include <direct.h>
#include <fstream>
#include <iostream>
#include <string>

#include <TriBase.h>
#include <D3D9.h>

#include "Direct3DEnum.h"
#include "InitDirect3D.h"
#include "InitWindow.h"

#include "GlobaleVariablen.h"  // eigene



Sobald ich aber iostream und fstream einbinde, kommen fehlermeldungen:

Quellcode

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
1>------ Erstellen gestartet: Projekt: 2_Das erste Dreieck, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>main.cpp
1>f:\programme\microsoft visual studio 9.0\vc\include\exception(208) : error C2039: 'set_terminate': Ist kein Element von '`global namespace''
1>f:\programme\microsoft visual studio 9.0\vc\include\exception(208) : error C2873: 'set_terminate': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>f:\programme\microsoft visual studio 9.0\vc\include\exception(208) : error C2039: 'terminate_handler': Ist kein Element von '`global namespace''
1>f:\programme\microsoft visual studio 9.0\vc\include\exception(208) : error C2873: 'terminate_handler': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>f:\programme\microsoft visual studio 9.0\vc\include\exception(208) : error C2039: 'terminate': Ist kein Element von '`global namespace''
1>f:\programme\microsoft visual studio 9.0\vc\include\exception(208) : error C2873: 'terminate': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>f:\programme\microsoft visual studio 9.0\vc\include\exception(208) : error C2039: 'set_unexpected': Ist kein Element von '`global namespace''
1>f:\programme\microsoft visual studio 9.0\vc\include\exception(208) : error C2873: 'set_unexpected': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>f:\programme\microsoft visual studio 9.0\vc\include\exception(208) : error C2039: 'unexpected_handler': Ist kein Element von '`global namespace''
1>f:\programme\microsoft visual studio 9.0\vc\include\exception(208) : error C2873: 'unexpected_handler': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>f:\programme\microsoft visual studio 9.0\vc\include\exception(208) : error C2039: 'unexpected': Ist kein Element von '`global namespace''
1>f:\programme\microsoft visual studio 9.0\vc\include\exception(208) : error C2873: 'unexpected': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>f:\programmierung\projekte\buch_aufgaben\2_das erste dreieck\2_das erste dreieck\funktionen.h(32) : error C2065: 'ifstream': nichtdeklarierter Bezeichner
1>f:\programmierung\projekte\buch_aufgaben\2_das erste dreieck\2_das erste dreieck\funktionen.h(32) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'datei'
1>f:\programmierung\projekte\buch_aufgaben\2_das erste dreieck\2_das erste dreieck\funktionen.h(32) : error C2065: 'datei': nichtdeklarierter Bezeichner
1>f:\programmierung\projekte\buch_aufgaben\2_das erste dreieck\2_das erste dreieck\funktionen.h(33) : error C2065: 'datei': nichtdeklarierter Bezeichner
1>f:\programmierung\projekte\buch_aufgaben\2_das erste dreieck\2_das erste dreieck\funktionen.h(33) : error C2228: Links von ".open" muss sich eine Klasse/Struktur/Union befinden.
1>        Typ ist ''unknown-type''
1>f:\programmierung\projekte\buch_aufgaben\2_das erste dreieck\2_das erste dreieck\funktionen.h(33) : error C2653: 'ios': Keine Klasse oder Namespace
1>f:\programmierung\projekte\buch_aufgaben\2_das erste dreieck\2_das erste dreieck\funktionen.h(33) : error C2065: 'in': nichtdeklarierter Bezeichner
1>f:\programmierung\projekte\buch_aufgaben\2_das erste dreieck\2_das erste dreieck\funktionen.h(34) : error C2065: 'datei': nichtdeklarierter Bezeichner
1>f:\programmierung\projekte\buch_aufgaben\2_das erste dreieck\2_das erste dreieck\funktionen.h(34) : error C2228: Links von ".is_open" muss sich eine Klasse/Struktur/Union befinden.
1>        Typ ist ''unknown-type''
1>f:\programmierung\projekte\buch_aufgaben\2_das erste dreieck\2_das erste dreieck\funktionen.h(37) : error C2065: 'datei': nichtdeklarierter Bezeichner
1>f:\programmierung\projekte\buch_aufgaben\2_das erste dreieck\2_das erste dreieck\funktionen.h(37) : error C2228: Links von ".close" muss sich eine Klasse/Struktur/Union befinden.
1>        Typ ist ''unknown-type''
1>f:\programmierung\projekte\buch_aufgaben\2_das erste dreieck\2_das erste dreieck\funktionen.h(43) : error C2664: 'GetDirect3DParameters': Konvertierung des Parameters 1 von 'SDirect3DParameters **' in 'SDirect3DParameters *' nicht möglich
1>        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>Das Buildprotokoll wurde unter "file://f:\Programmierung\Projekte\buch_aufgaben\2_Das erste Dreieck\2_Das erste Dreieck\Debug\BuildLog.htm" gespeichert.
1>2_Das erste Dreieck - 24 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========



Kann mit jemand helfen?

Danke im Voraus
Jonsen
-=:{( <=> )}:=-

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

25.01.2009, 19:35

Lies doch mal die Fehlermeldung. Da steht ja eigl. alles.

set_terminate gehört zum namespace std, den du wahrscheinlich nicht bekannt machst..

Jonsen

Frischling

  • »Jonsen« ist der Autor dieses Themas

Beiträge: 36

Wohnort: Unter der Brücke

  • Private Nachricht senden

3

25.01.2009, 19:46

Stimmt, das hab ich nicht bekanntgemacht!
Danke!

Ich hab jetzt "using namespace std;" direkt unter #include <iostream> geschrieben ...

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <Windows.h>
#include <StdIO.h>
#include <direct.h>

#include <iostream>
using namespace std;
#include <fstream>
#include <string>

#include <TriBase.h>
#include <D3D9.h>

#include "Direct3DEnum.h"
#include "InitDirect3D.h"
#include "InitWindow.h"

#include "GlobaleVariablen.h" // eigene


Die Fehlerliste hat sich halbiert ^^

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1>------ Erstellen gestartet: Projekt: 2_Das erste Dreieck, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>main.cpp
1>f:\programme\microsoft visual studio 9.0\vc\include\exception(208) : error C2039: 'set_terminate': Ist kein Element von '`global namespace''
1>f:\programme\microsoft visual studio 9.0\vc\include\exception(208) : error C2873: 'set_terminate': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>f:\programme\microsoft visual studio 9.0\vc\include\exception(208) : error C2039: 'terminate_handler': Ist kein Element von '`global namespace''
1>f:\programme\microsoft visual studio 9.0\vc\include\exception(208) : error C2873: 'terminate_handler': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>f:\programme\microsoft visual studio 9.0\vc\include\exception(208) : error C2039: 'terminate': Ist kein Element von '`global namespace''
1>f:\programme\microsoft visual studio 9.0\vc\include\exception(208) : error C2873: 'terminate': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>f:\programme\microsoft visual studio 9.0\vc\include\exception(208) : error C2039: 'set_unexpected': Ist kein Element von '`global namespace''
1>f:\programme\microsoft visual studio 9.0\vc\include\exception(208) : error C2873: 'set_unexpected': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>f:\programme\microsoft visual studio 9.0\vc\include\exception(208) : error C2039: 'unexpected_handler': Ist kein Element von '`global namespace''
1>f:\programme\microsoft visual studio 9.0\vc\include\exception(208) : error C2873: 'unexpected_handler': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>f:\programme\microsoft visual studio 9.0\vc\include\exception(208) : error C2039: 'unexpected': Ist kein Element von '`global namespace''
1>f:\programme\microsoft visual studio 9.0\vc\include\exception(208) : error C2873: 'unexpected': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>Das Buildprotokoll wurde unter "file://f:\Programmierung\Projekte\buch_aufgaben\2_Das erste Dreieck\2_Das erste Dreieck\Debug\BuildLog.htm" gespeichert.
1>2_Das erste Dreieck - 12 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Kann mir jemand bitte noch helfen den Rest wegzubekommen ?
thx
-=:{( <=> )}:=-

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

4

25.01.2009, 20:16

Das using gehört nicht in den Header. Niemals.

Das kannst du an den Anfang der .cpp stecken, aber nicht in einen Header.

Der Fehler ist immernoch derselbe..

Jonsen

Frischling

  • »Jonsen« ist der Autor dieses Themas

Beiträge: 36

Wohnort: Unter der Brücke

  • Private Nachricht senden

5

27.01.2009, 18:29

Ich hab das jetzt also in die HauptCPP reingeschrieben (vor der besagten Headerdatei):

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <Windows.h>
#include <StdIO.h>
#include <direct.h>
#include <iostream>

#include <TriBase.h>
#include <D3D9.h>

#include "Direct3DEnum.h"
#include "InitDirect3D.h"
#include "InitWindow.h"

#include "GlobaleVariablen.h"
using namespace std;
#include "Funktionen.h"   // Hier steht die Funktion drinn, die fstream benötigt



und die inkludeliste in Funktionen.h sieht so aus:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <Windows.h>
#include <StdIO.h>
#include <direct.h>

//#include <iostream>
#include <fstream>
#include <string>

#include <TriBase.h>
#include <D3D9.h>

#include "Direct3DEnum.h"
#include "InitDirect3D.h"
#include "InitWindow.h"

#include "GlobaleVariablen.h"


Die Fehlermeldung kommt leider immernoch!
Auch, wenn ich fstream und string in der CPP inkludiere nützt das nix!

Kannst du mir bitte sagen, was ich (immernoch) falschmache?! :?:

thx
Jonsen
-=:{( <=> )}:=-

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

6

27.01.2009, 18:42

Hast du den auch den Header für set_terminate inkludiert? (also exception)

btw:
Im übrigen sollte man das using nicht in den Header schreiben..

Jonsen

Frischling

  • »Jonsen« ist der Autor dieses Themas

Beiträge: 36

Wohnort: Unter der Brücke

  • Private Nachricht senden

7

27.01.2009, 19:14

Hab ich gemacht, hat auch nichts genützt!

Du meinst doch das:

Quellcode

1
2
//main.cpp
#include <exception>
?!
-=:{( <=> )}:=-

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

8

27.01.2009, 19:37

Also zeig jetzt mal alle includes, wo das using steht und wo die erste Fehlermeldung auftritt. (+ Fehlermeldung)

Jonsen

Frischling

  • »Jonsen« ist der Autor dieses Themas

Beiträge: 36

Wohnort: Unter der Brücke

  • Private Nachricht senden

9

27.01.2009, 19:47

O.M.G.

Hab den Fehler gefunden!
Ich hab in den Linker-Includeverweisen den Includeordner vom CBuilderX drinnenstehen gehabt!! :evil:
-> Der hat sich die falschen Includedateien geholt

Eintrag gelöscht ... es geht ^^

Aber danke trotzdem!
bye
-=:{( <=> )}:=-

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

10

27.01.2009, 19:56

Dachte ich doch, dass da etwas sehr schief läuft. ;)

Werbeanzeige