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

28.12.2005, 00:03

Eigentlich müsste es funktionieren....

Ich benutze Visual C++ 6.0, versuche verzweifelt ein Spiel auf die Beine zu stellen und der Compiler will nicht.
Es gibt 2 Dateien. Eine heißt modelle.cpp (Das Spiel baut auf dem Buchbeispiel auf) und die andere Classes.cpp.
modelle.cpp ist die Hauptdatei. Hier wird Classes.cpp so eingebunden:

Quellcode

1
2
3
#include <TriBase.h>
#include "Classes.cpp"
#include "Resource.h"


genau wie bei Galactica aus dem Buch:

Quellcode

1
2
3
4
5
6
7
#include <TriBase.h>
#include "Ship.h"
#include "Intro.h"
#include "MainMenu.h"
#include "Projectile.h"
#include "Game.h"
#include "Resource.h"


in der Classes.cpp gibt es eine Klasse, die sieht so aus:

Quellcode

1
2
3
class Character : public tbObject 
{
...

Fehlermeldung:
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(23) : error C2504: 'tbObject' : base class undefined
Mein Kommentar: Tribase.h wird vor der Ableitung eingebungen

Lasse ich das tbObject weg, dann funktioniert es (wird noch nicht gebraucht). Lustig, ne?

Ich hab noch so einen:
Füge ich der Klasse ein Model hinzu:

Quellcode

1
2
3
4
5
class Character   
{
 private:
     tbModel *pModel;
...

So erscheinen diesmal 3 Fehlermeldungen:
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(19) : error C2143: syntax error : missing ';' before '*'
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(19) : error C2501: 'tbModel' : missing storage-class or type specifiers
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(19) : error C2501: 'pModel' : missing storage-class or ty
Mein Kommentar: Was soll daran falsch sein? David hat es genauso gemacht.

Quellcode

1
2
3
4
5
6
class CGame
{
public:
...
tbModel*    m_pCockpitModel;        // Cockpitmodell
...

Irgendwie scheint das sonst so einfache Inkludieren für VC++ 6 eine wahnsinnig schwere Aufgabe zu sein.
Wat ne Gaudi!

matthias

Alter Hase

Beiträge: 449

Wohnort: wipperfürth

  • Private Nachricht senden

2

28.12.2005, 00:17

mach mal aus classes eine .h datei ;)

3

28.12.2005, 00:23

*räusper*
Ich weiß zwar nicht warum es jetzt funktioniert, da eigentlich auch .txt gehen sollte, aber mir solls recht sein. :lol:

4

28.12.2005, 21:45

Mich würd es mal interessieren, WARUM das denn jetzt auf einmal geht?

Dann müssten doch auch Fehler kommen, wenn ich die ganzen Funktionen einer Klasse auch in die Headerdatei schreib. Mach ich nämlich immer.

F0GX

CW_Kovok

Alter Hase

Beiträge: 836

Wohnort: nähe Bonn

Beruf: Schüler

  • Private Nachricht senden

5

28.12.2005, 21:59

afaik nimmt der compiler die funktionen dann als inline und meckert deswegen nicht ???
Was es alles gibt, das ich nich brauche - Aristoteles

6

31.12.2005, 12:44

Alles etwas komisch. Ich hab dran weitergearbeitet und mit .h immer 0 Errors und 0 Warnings bekommen (außer es waren wirklich Fehler da). Gerade eben hab ich zum Test nochmal .cpp draus gemacht und es kommen 27 Fehler:

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
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(4) : error C2143: syntax error : missing ';' before '*'
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(4) : error C2501: 'tbModel' : missing storage-class or type specifiers
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(4) : error C2501: 'pModels' : missing storage-class or type specifiers
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(24) : error C2146: syntax error : missing ';' before identifier 'LoadModels'
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(24) : error C2501: 'tbResult' : missing storage-class or type specifiers
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(27) : error C2061: syntax error : identifier 'D3DPOOL'
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(47) : warning C4183: 'LoadModels': member function definition looks like a ctor, but name does not match enclosing class
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(48) : error C2146: syntax error : missing ';' before identifier 'SetProperties'
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(48) : error C2501: 'tbResult' : missing storage-class or type specifiers
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(59) : warning C4183: 'SetProperties': member function definition looks like a ctor, but name does not match enclosing class
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(97) : error C2146: syntax error : missing ';' before identifier 'Render'
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(97) : error C2501: 'tbResult' : missing storage-class or type specifiers
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(112) : warning C4183: 'Render': member function definition looks like a ctor, but name does not match enclosing class
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(145) : error C2504: 'tbObject' : base class undefined
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(147) : error C2143: syntax error : missing ';' before '*'
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(147) : error C2501: 'tbModel' : missing storage-class or type specifiers
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(147) : error C2065: 'CHAR_MAXANIMATIONS_UPPER' : undeclared identifier
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(147) : error C2057: expected constant expression
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(147) : error C2501: 'pUpperModels' : missing storage-class or type specifiers
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(148) : error C2143: syntax error : missing ';' before '*'
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(148) : error C2501: 'tbModel' : missing storage-class or type specifiers
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(148) : error C2065: 'CHAR_MAXANIMATIONS_LOWER' : undeclared identifier
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(148) : error C2057: expected constant expression
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(148) : error C2501: 'pLowerModels' : missing storage-class or type specifiers
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(164) : error C2146: syntax error : missing ';' before identifier 'vicurrent_rotation'
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(164) : error C2501: 'tbVector3' : missing storage-class or type specifiers
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(164) : error C2501: 'vicurrent_rotation' : missing storage-class or type specifiers
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(175) : error C2061: syntax error : identifier 'tbModel'
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(301) : error C2146: syntax error : missing ';' before identifier 'MoveCharacter'
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(301) : error C2501: 'tbResult' : missing storage-class or type specifiers
F:\Programmieren\Beispiele\Kapitel 03\02 - Modelle\Classes.cpp(305) : warning C4183: 'MoveCharacter': member function definition looks like a ctor, but name does not match enclosing class


Stört mich aber weiter nicht. Ich mach wieder .h draus, dann geht alles.

Sicaine

unregistriert

7

31.12.2005, 16:00

#include "Classes.cpp" die soll ja auch h heßen weil du den header includest nich die cpp direkt.

Werbeanzeige