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

cojo2015

Alter Hase

  • »cojo2015« ist der Autor dieses Themas

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

21

19.06.2015, 13:46

Ok. Ich habe in CGame.hpp Player.hpp includiert. Jetzt kommt folgende Fehlermeldung:
error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""protected: void __thiscall CGame::Player(float,class sf::Sprite,float)" (?Player@CGame@@IAEXMVSprite@sf@@M@Z)" in Funktion ""public: void __thiscall CGame::Start(float,float,class sf::Sprite,class sf::Sprite)" (?Start@CGame@@QAEXMMVSprite@sf@@0@Z)".

Ich interpretiere daraus, dass etwas mit der Funktion Player (...) in der Klasse CGame nicht ganz richtig ist. Ich habe nichts am Code verändert, außer, dass ich die "using namespace std" und "using namespace sf" nicht mehr drin habe. Also muss ich nun immer vor jedem Sprite ein sf:: setzten (z.B. sf::Sprite Grafic1_Sprite). Ist das vllt. der Fehler?

ERROR

Alter Hase

Beiträge: 417

Wohnort: Paderborn

Beruf: Informatik Student

  • Private Nachricht senden

22

19.06.2015, 13:50

Ja, jetzt wird überall ein sf:: bzw std:: benötigt, wo durch das using namespace keins mehr benötigt wurde.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

23

19.06.2015, 14:08

Die Methoden wurden deklariert, aber nicht definiert. Anders gesagt stehen sie in der .h, aber haben kein Äquivalent in einer .cpp.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

cojo2015

Alter Hase

  • »cojo2015« ist der Autor dieses Themas

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

24

19.06.2015, 14:24

Also muss das jetzt so aussehen:

Player.hpp

C-/C++-Quelltext

1
CPlayer (float fElapsedTime, sf::Sprite Grafic1_Sprite, float fSpeed);


Player.cpp

C-/C++-Quelltext

1
2
3
4
CPlayer::CPlayer (float fElapsedTime, sf::Sprite Grafic1_Sprite, float fSpeed)
{
// ...
}


CGame.hpp

C-/C++-Quelltext

1
2
protected:
    void Player (float fElapsedTime, sf::Sprite Grafic1_Sprite, float fSpeed);

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

25

19.06.2015, 15:02

Das in CGame.hpp ist Unfug. Das sieht aus wie ein Konstruktor für eine Klasse namens "Player", ist aber keiner, weil es in der Klasse CGame liegt.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

cojo2015

Alter Hase

  • »cojo2015« ist der Autor dieses Themas

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

26

19.06.2015, 15:56

Ok. Jetzt habe ich einfach protected in der CGame.hpp raus genommen. Nun habe ich einen (mehr oder weniger) neuen Fehler:
error C2011: 'CPlayer': 'class' Typneudefinition.

Muss ich noch irgendwetwas anderes beachten? (Wenn man einen doppelklick macht, dann ist man in Player.hpp)

ByteJunkie

Alter Hase

Beiträge: 891

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

27

19.06.2015, 16:05


Ok. Jetzt habe ich einfach protected in der CGame.hpp raus genommen. Nun habe ich einen (mehr oder weniger) neuen Fehler:

error C2011: 'CPlayer': 'class' Typneudefinition.

Muss ich noch irgendwetwas anderes beachten? (Wenn man einen doppelklick macht, dann ist man in Player.hpp)


Die Zeilen gehören nicht in CGame.hpp:

C-/C++-Quelltext

1
2
3
protected:
    void Player (float fElapsedTime, Sprite Grafic1_Sprite, float fSpeed);
    void Yellow (Sprite Yellow_Sprite);
Mach was Du nicht lassen kannst und lass was Du nicht machen kannst. ;)

cojo2015

Alter Hase

  • »cojo2015« ist der Autor dieses Themas

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

28

19.06.2015, 16:08

Ja, damit meine ich, dass ich alle Funktionen unter "protected" gelöscht habe.

ByteJunkie

Alter Hase

Beiträge: 891

Wohnort: Deutschland

Beruf: Softwareentwickler

  • Private Nachricht senden

29

19.06.2015, 16:19

Ja, damit meine ich, dass ich alle Funktionen unter "protected" gelöscht habe.


So, jetzt vergleiche mal Player.hpp mit Player.cpp. Was fällt Dir da auf?
Mach was Du nicht lassen kannst und lass was Du nicht machen kannst. ;)

cojo2015

Alter Hase

  • »cojo2015« ist der Autor dieses Themas

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

30

19.06.2015, 16:28

Tut mir leid, aber ich sehe nichts... Wahrscheinlich bin ich einfach zu doof! :dash:

Werbeanzeige