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

23.09.2011, 22:27

LUA und C++

hi,

ne kurze frage. gibt es mittlerweile eine "bessere" methode um c++ klassen mit lua zu verwenden als in diesem tutorial beschrieben?

http://lua-users.org/wiki/CppObjectBinding

kenne mich in der materie noch nicht so gut aus. tutorial ist soweit klar, aber ist doch irgendwie auch nicht so toll, für jedes objekt, das man verwenden will, so nen wrapper zu basteln, v.a. dass man bei hinzufügen/entfernen von methoden in der c++-class auch änderungen am lua-wrapper vornehmen muss.

toll wäre natürlich sowas wie:
lua_registerClass( myclass );

und schon kann ich myclass objekte in scripts verwenden. wird es natürlich nicht so geben, aber gibt es dennoch etwas "besseres" als das obige?

lg

Forang

Frischling

Beiträge: 23

Wohnort: Wesel

Beruf: Schule

  • Private Nachricht senden

2

23.09.2011, 22:41

Ich kann nur Luabind empfehlen.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

3

23.09.2011, 22:41

Afaik gibt es in Lua keine Klassen, viel besser wirds also wohl nicht. Ich bin kein Lua Experte, aber man hört immer wieder von sog. "Tables", offenbar ein Sprachfeature von Lua das Klassen einigermaßen nahe kommt. Alternativ könntest du dir Squirrel anschaun. Das ist eine ähnliche Skriptsprache, die afaik Klassen unterstützt.

4

23.09.2011, 22:44

seite 11 oder so hier im forum im lua forum entdeckt:
http://www.rasterbar.com/products/luabind.html

klingt nach etwas interessantem für mich. schau ich mir morgen an :)

edit: mah zu langsam :(
danke trotzdem.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

24.09.2011, 00:24

Luabind kann ich auch empfehlen.
Hab damit die Missions-Skripte für mein Spiel "Rocket Rage" gemacht.

6

24.09.2011, 14:21

kann mir vielleicht noch jemand helfen mit der "installation" von luabind unter windows? irgendwie kapier ich da das tutorial nicht ganz.

hab luabind 0.9.1 runtergeladen und boost 1_47_0.
boost dürfte soweit installiert sein (modifizierte bootstrap.bat für mingw ausgeführt und bjam.exe mit gewissen parametern gestartet, dass es boost builded).
jetzt steht da, dass ich im luabind root ordner bjam ausführen soll, aber den befehl kennt er über die konsole nicht. was genau muss man da tun? ich muss ja eben auch noch luabind für die dlls builden.

ich versuche mich da an diesem tutorial:
http://www.rasterbar.com/products/luabind/docs.html

edit: anscheinend sollte man nur die bjam.exe im luabind ordner ausführen, aber ich bekomme da folgenden fehler:

unable to load boost.build could not find boost-build.jam (wenn ich die ebenfalls in den ordner kopiere, kommt ein weiterer boost fehler, aber eigentlich sollte es ja ohne dem file funktionieren).
hätte boost eigentlich schon gebuilded. woran kann das also liegen?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Draculark« (24.09.2011, 16:51)


7

26.09.2011, 14:11

der doppelpost sei mir gestattet:

habs weiterhin nicht hinbekommen und hab mich jetzt mal an die luabind mailing list gewendet. falls doch irgendwer noch infos hätte, hier die beschreibung,was ich bisher gemacht habe (quote aus mail):

Zitat

Hi,

i’m having problems with building luabind under windows 7 x64 with mingw. I followed the instructions under the documentation but that doesn’t work for me.

What I’ve done so far:
- Downloaded and installed lua 5.1
- Downloaded boost 1.47.0
- Went to tools\build\v2 to modify bootstrap.bat to adjust the mingw search locations
- Run the bootstrap.bat
- Copied the new bjam.exe file to the boost root folder
- Did a complete boost build (took some time)
- Downloaded luabind 0.9.1
- Copied the bjam.exe from above to the luabind folder
- Tried to run bjam.exe -> error
Unable to load boost.build: could not find boost-build.jam. if I copy the boost-build.jam from the boost folder to the luabind folder it still won’t work and I think, that wouldn’t be the correct way either.

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

8

26.09.2011, 16:42

Probier mal die bjam.exe nicht zu kopieren sondern den kompletten Pfad zur exe beim Aufrufen anzugeben.
d.h.
# C:\path\to\your\bjam.exe parameter
statt
# bjam.exe parameter

Wenn das zu umständlich ist kannst du den Ordner in dem bjam.exe liegt auch in deine PATH variable packen
http://geekswithblogs.net/renso/archive/…-windows-7.aspx

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

9

26.09.2011, 17:42

Ich würde ja mal die Suchmaschine deiner Wahl bemühen. Ich fand so einige Möglichkeiten, welche das Problem anscheinend beheben. So wäre zum Beispiel eine ältere Boost Version ggf eine Lösung. Oder du nimmst die modifizierte Version die per Vs kompiliert werden kann (wenn es denn was anderes als mingw sein darf).
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

10

26.09.2011, 18:45

habe schon genug threads im internet gefunden, die haben mir aber alle nicht geholfen. das mit ner älteren boost version mag klappen, aber davon war ich nicht begeistert. es gibt gründe, warum es eine NEUERE version gibt und darum würde ich diese auch gern verwenden.

visual studio bringt mir nix, da ich eclipse verwende und mir ne VS projektdatei somit nichts bringt.

dann gabs noch nen tipp bjam runterzuladen und das benutzen. auch das habe ich versucht, aber hat dennoch nichts gebracht.

habe auch versucht BOOST_ROOT in den umgebungsvariablen zu setzen, aber auch dieses war ohne erfolg.

@xardias:
welchen unterschied würde das bringen?

Werbeanzeige