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

sph

Frischling

  • »sph« ist der Autor dieses Themas
  • Private Nachricht senden

1

13.12.2007, 16:14

VS2005 3. Auflage Include Fehler

Hallo zusammen,

ich versuche gerade eigenen Code zum laufen zu bekommen. Der Kompiler meckert aber wegen nicht gefundener Bezeichner, obwohl ich mMn alles richtig includiert und in VS eingebunden habe.

Ich habe euch den code und die Fehlerausgabe mal auf meinen webspace gelegt. Wäre nett wenn sich das jemand mal anschauen könnte, kein Plan mehr woran das liegen könnte. Ist trotzdem bestimmt was einfaches, sieht danach aus als würde kein include richtig funktionieren.

code und buildlog
http://homepages.fh-giessen.de/~hg12885/

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

2

13.12.2007, 16:26

1. includes in header solten vermieden werden
2. stell dir vor, dass die include-Direktive nichts anderes macht, als den Header in die Datei zu kopieren und zwar genau da wo die Direktive steht. Du wirst feststellen, dass sowohl Reihenfolge als auch Ort der Direktiven damit nicht mehr beliebig wählbar sind.

3. lange Rede kurzer Sinn, in die menu.cc gehören

#include "../../../code/tribase/include/TRIBASE.H"
#include "menu.h"

und in die bfg.cc

#include "../../../code/tribase/include/TRIBASE.H"
#include "menu.h"
#include "bfg.h"

Außerdem wird enum in CPP klein geschrieben und nicht groß.
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 Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

3

13.12.2007, 16:31

Zitat von »"Nox"«

1. includes in header solten vermieden werden

Meinst du das wirklich so?
Wenn ja, warum?

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

4

13.12.2007, 17:23

okay du hast recht. Bei Headern, die Voraussetzung für die darauf folgenden Klassen sind, hat es durchaus seine Berechtigung diese im Header einzubinden. Allerdings habe ich für mich selbst die Regel aufgestellt, da ich so jederzeit an der CPP sehen kann, welche Header wirklich im Endeffekt eingebunden sind und außerdem kann man so schneller feststellen, ob nicht mehr benötigte Header (immer noch) eingebunden werden. Das ist meine Erfahrung aus den größeren Projekten.
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 Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

13.12.2007, 18:12

Dann musst du aber auf die #include-Reihenfolge achten, wenn Header A auf etwas zurückgreift, was in Header B definiert ist ... (und nicht mit Vorwärtsdeklaration zu lösen ist)
Ich versuche aber auch, so wenig #includes in Headern wie möglich zu schreiben. Das reduziert bei Änderungen auch die Anzahl der neuzukompilierenden Dateien.

6

13.12.2007, 19:32

Naja oder du legst dir halt, wie ich es bei dll-Projekten gerne mache, eine zentrale Datei an, die alle nötigen Header einbindet und die dann auch die Header des Projektes einbindet. Nicht umgekehrt. Dann kommst du mit 0-Includes im Header aus :P
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

Werbeanzeige