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

GameProggD3D

Frischling

  • »GameProggD3D« ist der Autor dieses Themas

Beiträge: 67

Wohnort: Walding

Beruf: Schüler

  • Private Nachricht senden

1

06.07.2012, 14:00

Erkennt "#include<string>" nicht

Hi,
hab ne Header-Datei, die so aussieht:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
#ifndef LOG_H
#define LOG_H

#include <string>
#include <sstream>
#include <Windows.h>
#include <fstream>

void WriteToLog(string message);

#endif


Und es wirft mir jede Menge Fehler, unter anderem:

Quellcode

1
Fehler  1   error C2065: 'string': nichtdeklarierter Bezeichner d:\...\***.h    9


Weiß wer, wie man das beheben kann oder was die Fehler verursacht?
Programmiere Zombie-Spiel mit nem Freund

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

2

06.07.2012, 14:00

Benutze niemals using namespace std; !
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

GameProggD3D

Frischling

  • »GameProggD3D« ist der Autor dieses Themas

Beiträge: 67

Wohnort: Walding

Beruf: Schüler

  • Private Nachricht senden

3

06.07.2012, 14:01

oO Ich bin so dämlich xD
Programmiere Zombie-Spiel mit nem Freund

S4My

unregistriert

4

06.07.2012, 14:03

Benutze niemals using namespace std; !
Nett :P .

GameProggD3D

Frischling

  • »GameProggD3D« ist der Autor dieses Themas

Beiträge: 67

Wohnort: Walding

Beruf: Schüler

  • Private Nachricht senden

5

06.07.2012, 14:04

Irgendwie war die Frage grad wirklich unnötig, da hätt ich selber drauf kommen müssen -.-
Programmiere Zombie-Spiel mit nem Freund

S4My

unregistriert

6

06.07.2012, 14:09

Naja, kann sein :D .

Ach ja, kleiner Tipp am Rande damit ich hier nicht total überflüssig bin:

Soweit ich weiß ist

C-/C++-Quelltext

1
2
3
4
5
6
#ifndef xy
#define xy
/*
Code
*/
#endif

im Prinzip das gleiche wie

C-/C++-Quelltext

1
#pragma once

nur erspart man sich mit letzerem jede Menge Arbeit beim prüfen und auch beim tippen.
Das ist denke ich nie verkehrt :thumbsup: .

Mlg
S4My

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

7

06.07.2012, 14:20

Naja, kann sein :D .

Ach ja, kleiner Tipp am Rande damit ich hier nicht total überflüssig bin:

Soweit ich weiß ist

C-/C++-Quelltext

1
2
3
4
5
6
#ifndef xy
#define xy
/*
Code
*/
#endif

im Prinzip das gleiche wie

C-/C++-Quelltext

1
#pragma once

nur erspart man sich mit letzerem jede Menge Arbeit beim prüfen und auch beim tippen.
Das ist denke ich nie verkehrt :thumbsup: .

Mlg
S4My


Nein, ist nicht das Gleiche:
  • pragma once muss vom Compiler nicht Unterstützt werden
  • pragma once ist meißt optimiert (z.B. in MSVC)
  • manche Compiler erkennen und optimieren auch Includeguards (aber dies ist natürlich kein Muss)
@D13_Dreinig

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

8

06.07.2012, 14:29

Benutze niemals using namespace std; !


Wieso egtl.? Habe vor 3 Monaten angefangen C++ zu lernen und habe bisher in Tutorials immer using namespace std gesehen. Wieso sollte man das nicht tun? Spart doch eine Menge Tipparbeit. :hmm:
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

9

06.07.2012, 14:33

Es spart nicht wirklich viel und gerade für Anfänger ist es eher hinderlich, weil sie so nicht merken was in std liegt und was nicht.
Wenn man etwas wirklich oft schreibt kann man "using std::string" oder "using std::cout" benutzen. Aber niemals den ganzen Namespace.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

10

06.07.2012, 14:35

Aber niemals den ganzen Namespace.


Und schon gar nicht in irgend einem Header!
@D13_Dreinig

Werbeanzeige