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

1

14.04.2008, 20:02

includen in Visual Studio 2008

Hallo,

also beim Visual Studio 2008 scheint das ja alles etwas anders zu funktionieren mit dem Includen. Schon am anfang musste ich das #include <iostream> in die stdafx.h Datei schreiben damit es funktionierte. Warum, weiss ich bis heute nicht. Aufjdenfall bin ich jetzt beim includen und egal wie und wo ich meine *.h datei include kommt folgende Ferhlermeldung:

Zitat

fatal error C1010: Unerwartetes Dateiende während der Suche nach dem vorkompilierten Header. Haben Sie möglicherweise vergessen, im Quellcode "#include "stdafx.h"" einzufügen?


Kann mir vielleuicht jemand mal erklären wie es bei diesem Compailer Funktioniert?

start.cpp

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
// start.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.

//

#include "stdafx.h"

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    vartyp();
char chInend;
cin >> chInend;
    return 0;
}


stdafx.cpp

C-/C++-Quelltext

1
2
3
4
5
6
7
8
// stdafx.cpp : Quelldatei, die nur die Standard-Includes einbindet.

// start.pch ist der vorkompilierte Header.

// stdafx.obj enthält die vorkompilierten Typinformationen.


#include "stdafx.h"

// TODO: Auf zusätzliche Header verweisen, die in STDAFX.H

// und nicht in dieser Datei erforderlich sind.


stdafx.h

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// stdafx.h : Includedatei für Standardsystem-Includedateien

// oder häufig verwendete projektspezifische Includedateien,

// die nur in unregelmäßigen Abständen geändert werden.

//


#pragma once

#include "targetver.h"

#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include "vartyp.h"




// TODO: Hier auf zusätzliche Header, die das Programm erfordert, verweisen.


vartyp.cpp

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
#include "vartyp.h"
void vartyp() {
cout << "unsere Datentypen und ihr Speicherbedarf:" << endl;
    cout << sizeof (bool) << " = bool (b)" << endl; 
    cout << sizeof (int) << " = int (n)" << endl; 
    cout << sizeof (short) << " = short" << endl; 
    cout << sizeof (long) << " = long " << endl; 
    cout << sizeof (char) << " = char (ch)" << endl; 
    cout << sizeof (float) << " = float (f)" << endl; 
    cout << sizeof (double) << " = double" << endl;
    cout << "----------------------------------------" << endl;
}

vartyp.h

C-/C++-Quelltext

1
void vartyp();

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

2

14.04.2008, 20:06

Du kannst, wenn du das wünscht, in den Projekteinstellungen den vorkompilierten Header deaktivieren. Das mache ich immer weil mich die Sache mit dem vorkompilierten Header nur nervt. Ansonsten mal in die MSDN schauen was du zu dem Fehler sagen ;)
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

3

14.04.2008, 20:44

Du musst den Header stdafx.h immer als erstes inkludieren (bzw den Header über den da PCH Zeug läuft). Oder du schaltest PCH Support ab.
@D13_Dreinig

4

14.04.2008, 20:59

C-/C++-Quelltext

1
2
3
4
#include <stdio.h> // (1)

#include <tchar.h> // (2)

#include <iostream> // (3)

#include "vartyp.h" // (4)
... davon brauchst du 1 nicht. Dafür nimmst du iostream. 2 brauchst du nur, wenn du weißt wie du damit umgehst (und dementsprechend auch wcin und cin usw. unterscheidest.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
#include "vartyp.h"
void vartyp() {
cout << "unsere Datentypen und ihr Speicherbedarf:" << endl;
    cout << sizeof (bool) << " = bool (b)" << endl;
    cout << sizeof (int) << " = int (n)" << endl;
    cout << sizeof (short) << " = short" << endl;
    cout << sizeof (long) << " = long " << endl;
    cout << sizeof (char) << " = char (ch)" << endl;
    cout << sizeof (float) << " = float (f)" << endl;
    cout << sizeof (double) << " = double" << endl;
    cout << "----------------------------------------" << endl;
}
DU willst wirklich jedesmall den Stream flushen? Nein ;)

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdafx.h"
#include "vartyp.h"

void vartyp() 
{
    std::cout << "Unsere Datentypen und ihr Speicherbedarf:\n"
                  << sizeof (bool) << " = bool (b)\n"
                  << sizeof (int) << " = int (i)\n"
                  << sizeof (short) << " = short (s)\n"
                  << sizeof (long) << " = long (l)\n"
                  << sizeof (char) << " = char (c)\n"
                  << sizeof (float) << " = float (f)\n"
                  << sizeof (double) << " = double (d)\n";
    std::cout << "----------------------------------------" << endl;
}
;)

C-/C++-Quelltext

1
2
3
4
5
6
7
#include "stdafx.h"

int main()
{
    vartyp();
    std::cin.get();
}
ohne den TCHAR Kram ... den verwendest du eh noch falsch ;)
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

5

14.04.2008, 21:59

danke Deviloper, nun funktioniert es zummindest schonmal. In PHP ist das halt alles etwas anders und leichter. Aber ich bekomme diese "header funktion" nicht ausgeschaltet,
#include "stdafx.h" muss ich immer includieren obwohl ich das noch nie in irgenteinem tutorial gesehen haben und schon garnicht im Buch. Und was bedeutet dieses "std::" vor dem cout und cin und was bewirkt es? Du kannst mir doch net einfach irgentwas hinschmeißen ohne zu erklären wo der unterschied ist :) aber nochmal danke für die mühe, sogar meine liste hat er erweitert ^^

SirForce

Alter Hase

Beiträge: 802

Wohnort: Süddeutschland

  • Private Nachricht senden

6

14.04.2008, 22:05

Naja, was das std:: angeht... du hast wahrscheinlich gelernt ein "using namespace std;" zu verwenden was aber (anscheinend ;) ) eine art Fehlfunktion ist... desswegen wird das weggelassen und vor cout und cin einfach ein std:: geschrieben.
Wobei bei Deviloper noch ein std::endl; fehlt!


Was ich dir aber auch empfehlen würde, ist den vorcompilierten Header zu entfernen, da du dann dein stdafx.h nicht brauchst!

EDIT: Datei -> Neu -> Projekt
Anwendungseinstellungen -> Zusätzliche Optionen -> Leeres Projekt

Dann tuts auch wieder nur #include <iostream> bzw. <stdio.h>
Nichts behindert so sehr die Entwicklung der Intelligenz wie ihre vollständige Abwesenheit.

Michail Genin

7

14.04.2008, 23:12

Du weißt aber schon wofür die PCH da sind?
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

8

15.04.2008, 08:28

Ganz ehrlich? Was soll der mist mit der kürzen Kompilierzeit. mind. 70% der Leute brauchen das nicht. Außerdem hat sich bei meinem Projekt gezeigt, dass ein zentraler Header zum unbedachten includieren verleitet, was auch nicht Sinn der Sache sein kann.

Wegen dem nachträglichen Abstellen (unter 2008 dürfte es ähnlich wie unter 2005 sein): Projekt->PROJEKTNAME-Eigenschaften -> Konfigurationseigenschaften -> C/C++ -> vorkompilierter Header.

Wegen dem std:: Link zu wiki
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Werbeanzeige