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

Stazer

Alter Hase

  • »Stazer« ist der Autor dieses Themas

Beiträge: 468

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

1

06.10.2009, 21:09

Lua Klassen Problem

moin ,
ich hab ein problem mit lua
und zwar hab ich eine klasse
in dieser klasse ist eine funktion
wenn ich diese allerdings mit lua_register
versuche zu registrieren gibt es einen kompilier fehler das die argumentliste fehlt obwohl in den beispielen dort nie eine ist

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Test
{
public :
  int helloworld ( lua_State * LuaInstance )
  {
     return 0 ;
   }
} 
int main ( )
{
class Test Test ;
// Lua initialisieren

// ...

// Funktion Registieren

lua_register ( luaInstance , "helloworld" , Test.helloworld ) ;
}


warum funkrioniert das nicht?

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

06.10.2009, 21:21

Zitat

C-/C++-Quelltext

1
class Test Test ; 


Was soll denn das?! :shock:

Ich denke du willst da eher das hier:

C-/C++-Quelltext

1
Test test; // schön anderen Namen nehmen, C++ ist ja case sensitive


Im übrigen fehlt das ";" bei der Klassendefinition von Test.

EDIT:
Die Fehlermeldung hätte dich eigentlich an die richtige Stelle tragen sollen.. Steht ja sicher auch eine Zeilennummer da, nicht? Und die wird nicht auf die Lua Funktion gezeigt haben..

Stazer

Alter Hase

  • »Stazer« ist der Autor dieses Themas

Beiträge: 468

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

3

06.10.2009, 21:30

Zitat von »"drakon"«

Zitat

C-/C++-Quelltext

1
class Test Test ; 


Was soll denn das?! :shock:

Ich denke du willst da eher das hier:

C-/C++-Quelltext

1
Test test; // schön anderen Namen nehmen, C++ ist ja case sensitive


Im übrigen fehlt das ";" bei der Klassendefinition von Test.

EDIT:
Die Fehlermeldung hätte dich eigentlich an die richtige Stelle tragen sollen.. Steht ja sicher auch eine Zeilennummer da, nicht? Und die wird nicht auf die Lua Funktion gezeigt haben..


also mein compiler meckert nicht wenn ich class Test Test ; schreiben würde ;)
zum problem
sobald ich versuche die funktion zu registrieren meckert der compiler und sagt das dort die argumentliste fehlt
würde aber die funktion helloworld global sein könnte ich die funktion ohe probleme registrieren

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

4

06.10.2009, 21:30

Zitat von »"drakon"«

C-/C++-Quelltext

1
Test test; // schön anderen Namen nehmen, C++ ist ja case sensitive



Es würde auch

C-/C++-Quelltext

1
Test Test
funktionieren, C++ ist schließlich klug ;)

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

5

06.10.2009, 21:32

Zitat von »"Fred"«

Zitat von »"drakon"«

C-/C++-Quelltext

1
Test test; // schön anderen Namen nehmen, C++ ist ja case sensitive



Es würde auch

C-/C++-Quelltext

1
Test Test
funktionieren, C++ ist schließlich klug ;)


Drum funktioniert auch:

C-/C++-Quelltext

1
class Test Test;

goldfisch007

Alter Hase

Beiträge: 446

Wohnort: Süden von Berlin

  • Private Nachricht senden

6

06.10.2009, 21:33

Zitat von »"Fred"«

Zitat von »"drakon"«

C-/C++-Quelltext

1
Test test; // schön anderen Namen nehmen, C++ ist ja case sensitive



Es würde auch

C-/C++-Quelltext

1
Test Test
funktionieren, C++ ist schließlich klug ;)


rofl
Wir bauen auf und reißen nieder, so ham wir Arbeit ima wieder...
--------------------
http://www.piratenpartei.de/tmp/images/Slogans_5_0.png
--------------------
Sei stets geduldig gegenüber Leuten, die nicht mit dir übereinstimmen. Sie haben ein Recht auf ihren Standpunkt - trotz ihrer lächerlichen Meinung. (F. Hollaender, geklaut von Helmut xD)

Stazer

Alter Hase

  • »Stazer« ist der Autor dieses Themas

Beiträge: 468

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

7

06.10.2009, 21:35

ja sry ich weiß das mein style bissl scheisse ist
aber das mit class Test Test ; tuh ich beabsichtig denn ich muss nur drauf gucken und schwupp aha es ist eine klasse :D

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

8

06.10.2009, 21:46

Das Problem ist, dass lua_register keine Methode sondern eine freie Funktion (oder statische Methode) erwartet.

Stazer

Alter Hase

  • »Stazer« ist der Autor dieses Themas

Beiträge: 468

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

9

06.10.2009, 21:48

das heißt die funktionen die ich in meiner klasse habe muss ich als static deklarieren?

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

10

06.10.2009, 21:49

Das wäre eine Möglichkeit. Du könntest ggf auch luabind verwenden, oder dir zumindest ansehen wie das dort gelöst wurde.

Werbeanzeige