IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

call lua overrided function from c++


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Ao�t 2011
    Messages
    33
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2011
    Messages : 33
    Par d�faut call lua overrided function from c++
    yop,
    je bosse sur un syst�me de script lua pour �tendre les possibilit�s d'une appli.
    Donc j'ai wrapp� une classe c++ en lua (a l'aide de table, m�tatable et userdata) pour pouvoir cr�er et utiliser un objet de ce type. Ca marche. Mais l'id�e, c'est de pouvoir faire ca :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    frame1 = Frame.new("nom")
     
    function frame1:Draw()
        -- code de dessin
    end
    ensuite en c++ j'appelle frame1 : Draw lorsque j'ai besoin de dessiner la fenetre.
    Faudrait stocker la table lua quand je cr�e l'objet, ensuite quand j'appelle Draw en c++, ca appelle la fonction Draw de la table, si elle est overrided ca l'appelle, sinon ca revient a la m�thode de base. Mais impossible de trouver comment stocker un pointeur de table lua en c++.

    Quelqu'un a une id�e?
    (dsl si c'est pas la bonne partie du fofo mais je savais pas trop ou poster)

  2. #2
    Invit� de passage
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    1
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 1
    Par d�faut
    Luabind ?

    C++ classes in Lua
    Overloaded member functions
    ...

  3. #3
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Ao�t 2011
    Messages
    33
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2011
    Messages : 33
    Par d�faut
    plutot mourir.
    Je suis sur VS2010 et luabind est compil� avec une ancienne version, donc faut le recompiler, en plus il utilise des variadic templates, pas support� par VS. J'ai d�ja perdu trop de temps � essayer de le faire marcher sans r�sultats.

  4. #4
    screetch
    Invit�(e)
    Par d�faut
    ah ben y'a plus que la magie alors. Bonne chance.

  5. #5
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Bonjour,

    cherche luna, c'est un wrapper lua<->C++ fonctionnel qui te fournit une classe de base dont il suffit d'h�riter.
    Il te suffira d'�crire ton luamanager pour charger les classes ainsi cr��es
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  6. #6
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Ao�t 2011
    Messages
    33
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2011
    Messages : 33
    Par d�faut
    tr�s interressant ce luna ! je suis entrain de regarder, ca m'a l'air bien sympa merci.
    Par contre rien sur l'override de fonctions c++ en lua. Mais j'ai trouv� la solution : luaL_ref() ca conserve un pointeur vers un objet lua. ex :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    int ptr = luaL_ref(L, LUA_REGISTRYINDEX);
     
    ...
     
    lua_rawgeti(L, LUA_REGISTRYINDEX, ptr);
    lua_getfield(L, -1, "nomdefonction");
    Autre question pendant que j'y suis, je cr�e un userdata auquel j'associe une metatable avec une fonction __gc dedans.
    Dans un script je fais ca :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    function test()
        local ud = myclass.new()    -- appel du constructeur, ca crée le userdata
        ud:testfunction()
    end    -- fin de la fonction, ud devrait etre détruit
    seulement voil�, l'appelle du __gc de ma classe n'est pas appell� a la fin de la fonction, mais quand je ferme la session Lua ( a la fin du programme quoi )
    quelqu'un sait pourquoi?

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. call a C function from another function !
    Par Student_Master dans le forum C
    R�ponses: 7
    Dernier message: 29/07/2011, 11h01
  2. Call to undefined function mysql_pconnect()
    Par shirya dans le forum Installation
    R�ponses: 2
    Dernier message: 03/11/2005, 21h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo