Genesis 3d problem

Hallo erstmal,
ich versuche mit genesis 3d und Borland C++ Builder ein Spiel zu schreiben, aber er findet folgende fehler:
in der Datei vfile.h auf Zeile 178: Conflicting type modifiers
in der Datei random.hauf Zeile 13:Cannot create pre-compiled header
und in der Datei GActor.h auf Zeile 48: … hides Virtual funktion GFigur::create …
woran kann das liegen???
Danke schonmal im Voraus!

Hallo Vali_Pro,

woran kann das liegen???

Am besten druckst du hier den Code der einzelnen Zeilen, mit den Fehlermeldungen darüber, so wie ich das eins tiefer gemacht habe.
Die Leute hier am Brett können sich das dann durchlesen und sich ein Bild machen.
Wenn Du möchtest.

lG
Martin B

Am besten druckst du hier den Code der einzelnen Zeilen, mit
den Fehlermeldungen darüber, so wie ich das eins tiefer
gemacht habe.
Die Leute hier am Brett können sich das dann durchlesen und
sich ein Bild machen.

ok:

fehler bei vfile.h:

GENESISAPI geBoolean GENESISCC geVFile_Printf(geVFile *File, const char *Format, …);

bei random.h:

const float PI = 3.14159265f;

bei GActor.h die letzte zeile diesr vereinbarung;

class TActor : public TPlayer
{
// Eigenschaften
private:
geActor *Actor; // Figurtyp
geVFile *ActorFile; // Actor-Datei
geActor_Def *ActorDef; // Definitionsdaten
geMotion *Motion; // Animationphasen
DWORD MCount; // Animationszähler
float MTime; // Animationsdauer
float MStart; // Startzeitpunkt
float MStop; // Endzeitpunkt
float MSpeed; // Laufgeschwindigkeit
bool isMoving; // in Bewegung?
bool isLooping; // Wiederholung (Loop)?
public:
geVec3d ScaleVector; // Skalierungswerte
// Konstruktor, Destruktor
TActor (void);
~TActor (void);
//Methoden
virtual void Create (geWorld *Welt, TModelBag *Bag, char *DateiName);
void SetScale (float X, float Y, float Z);
void SetMotion (float Speed, char *Bewegung, bool Modus1, bool Modus2);
virtual void Render (DWORD Zeit);
virtual void Move (void);
void Appear (void);
void Disappear (void);
void ExitError (char *Txt);
} ;//hier ist der Fehler(nach bcb)!

Hallo vali_pro,

} ;//hier ist der Fehler(nach bcb)!

Ich sehe hier nur den einen Fehler, dass du auf die pre-Marken vergessen hast, die machen eine Quelle schon besser leserlich.

Jetzt wissen wir immer noch nicht, was Borland denn da zu mosern hat. Das würde ich an deiner Stelle auch drucken.
Ich meine, mir kann es ja egal sein.

Martin B

Jetzt wissen wir immer noch nicht, was Borland denn da zu
mosern hat. Das würde ich an deiner Stelle auch drucken.
Ich meine, mir kann es ja egal sein.

ok da steht „W8022 TActor::Create(geWorld*,TModelBag*,char*)hides virtual function TFigur::Create(geWorld*,TModelBag*)“.
Und was heisst das jetzt???
Ich glaube ich muss aufgeben!!!

Hallo Vali_Pro

ok da steht „W8022
TActor::Create(geWorld*,TModelBag*,char*)hides virtual
function TFigur::Create(geWorld*,TModelBag*)“.
Und was heisst das jetzt???

Das heisst, das TActor von TFigur abgeleitet wurde. Die Funktion Create() müsste dann aber die gleiche Signatur haben wie in der Basisklasse, hat sie aber nicht: die von TActor hat noch einen „char*“ als drittes Argument abgekriegt. Das geht nun allerdings nicht.

Ich rate dringend, den Code der Klasse TFigur anzugucken, was da an Create() so rumliegt. Die könnte auch überladen sein, mit verschiedenen Signaturen. Wenn Deine Lib quelloffen ist, sollte das zu machen sein.

Ich glaube ich muss aufgeben!!!

Nein, warum: du kannst auch C++ lernen, vor allem auch Vererbung, dann wird’s schon mit der Zeit.
Noch was: Du benutzt eine Lib, die wir hier alle nicht kennen. Es gibt sicher auch ein Forum von den Benutzern dieser Lib, das hat auch sein Gutes.

freundliche Gruesse
Martin B

Hi,

Das heisst, das TActor von TFigur abgeleitet wurde. Die
Funktion Create() müsste dann aber die gleiche Signatur haben
wie in der Basisklasse, hat sie aber nicht: die von TActor hat
noch einen „char*“ als drittes Argument abgekriegt. Das geht
nun allerdings nicht.

Ich rate dringend, den Code der Klasse TFigur anzugucken, was
da an Create() so rumliegt. Die könnte auch überladen sein,
mit verschiedenen Signaturen. Wenn Deine Lib quelloffen ist,
sollte das zu machen sein.

Danke, werd ich mir mal anschauen.
Und was ist mit den anderen Fehlern?