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

Maxi

Treue Seele

  • »Maxi« ist der Autor dieses Themas

Beiträge: 136

Wohnort: Müncheberg

Beruf: Ich muss noch in die Schule

  • Private Nachricht senden

1

14.06.2003, 20:59

tbDoMessageLoop

Hallo, ich bins nochmal...

Habe mittlerweile diei Vertizes und INdizes gespeirchert, auch kommen keine Warnungen mehr.

So, jetzt will ich in dei MessageLoop eintreten , ich mache das so:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int WinMain(...)
{
   CTischtennis* App = new CTischtennis;
   // Ini-Code...
   App->Run();

}

tbResult CTischtennis::Run()
{
  tbDoMessageLoop(this->Move, this->Render);
}

tbResult CTischtennis::Move(float fSecsPassed)
{
  return TB_OK;
}

tbResult CTischtennis::Render(float fSecsPassed)
{
  return TB_OK;
}


beim kompilieren kommt der Fehler hier:
C:\Eigene Dateien\Maxi\C++\Tischtennis\Tischtennis.cpp(92) : error C2664: 'tbDoMessageLoop' : Konvertierung des Parameters 1 von 'enum tbResult (float)' in 'enum tbResult (__cdecl *)(float)' nicht moeglich
Keine Funktion mit diesem Namen im Gueltigkeitsbereich stimmt mit dem Zieltyp ueberein

was heißt das? und was muss ich machen?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

14.06.2003, 22:37

Man kann als Rückruffunktion keine Methode einer Klasse angeben, es muss eine normale Funktion sein. Innerhalb dieser Funktion kannst Du ja dann die Methode aufrufen.

So nicht:

Quellcode

1
tbDoMessageLoop(pApp->Move, pApp->Render);


Sondern so:

Quellcode

1
2
3
4
tbResult Move(float fTime) {return pApp->Move(fTime);}
tbResult Render(float fTime) {return pApp->Render(fTime);}

tbDoMessageLoop(Move, Render);

Maxi

Treue Seele

  • »Maxi« ist der Autor dieses Themas

Beiträge: 136

Wohnort: Müncheberg

Beruf: Ich muss noch in die Schule

  • Private Nachricht senden

3

15.06.2003, 11:28

und warum geht das nicht?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

15.06.2003, 12:03

Es geht eben nicht, weil C++ das nicht vorsieht.

Maxi

Treue Seele

  • »Maxi« ist der Autor dieses Themas

Beiträge: 136

Wohnort: Müncheberg

Beruf: Ich muss noch in die Schule

  • Private Nachricht senden

5

15.06.2003, 12:12

ok, dann mahc ich es eben so, wie ich du es gesagt hast :-)

Werbeanzeige