Messages recommandés

Posté(e)

Bonjour,

J'ai une classe C++ contenant une méthode avec un paramètre de type double.

void ajouterDistance(int type, double distance);

Cette méthode est appelée dans mon fichier lua. J'ai donc ajouté la classe et la fonction dans le module Lua :

lua_state L;

module(L)

[

class_<Entite >("Entite")

.def(constructor< unsigned int, const std::string & >())

.def("ajouterDistance", &EntiteScenario::ajouterDistance )

];

Dans mon fichier lua, j'ai :

Entite A = Entite(1000,"Toto")

A.ajouterDistance( 0, 123.2)

J'ai un problème au lancement de mon binaire, car Lua s'attend à voir un entier et un réel mais il considère que la deuxième valeur que je lui ai passé (123.2) n'est pas un double :

*****************

Terminated with exception: "no overload of 'Entite:ajouterDistance' matched the arguments<number, number>

canditates are :

'Entite:ajouterDistance<number, custom [double] >

*******************

Comment Faire pour que 123.2 soit accepté en tant que double dans mon lua????

Merci

Posté(e)

Désolé, ça dépasse mes compétences :huh:

Mais faut-il faire; déclarer qq chose en particulier lorsque dans lua on fait appel à des méthode C++ avec des arguments qui peuvent être de type simple ou des objets?

Merci

Posté(e)

Désolé, ça dépasse mes compétences :huh:

J'ai trouvé le problème : je faisais un mauvais appel à la méthode depuis Lua : je faisais à la méthode à l'aide d'un point au lieu des 2 points myInstance:myFunction(param)

Merci

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant