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 :

Programme C++ de console pour Lua


Sujet :

C++

  1. #1
    Membre actif

    Profil pro
    D�veloppeur informatique
    Inscrit en
    Juillet 2004
    Messages
    46
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 46
    Par d�faut Programme C++ de console pour Lua
    Salut � tous,

    je d�bute en Lua sous Windows pour l'embarquer dans du C++ et j'ai des questions, si des bonnes �mes pouvaient m'aider :

    1)
    D'abord qu'elle est la diff�rence entre luaxxx.exe et luacxxx.exe (xxx=num�ro de version) ? Les deux semblent pouvoir lire depuis stdin ou un fichiers des instructions (je m'attendais � une console interactive et un interpr�teur, � la ruby/irb).

    2)
    J'ai fait un programme de console en C++ pour Lua qu'il lise une cha�ne, puis la met dans un buffer et finalement l'ex�cute, voici le noyau du truc:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    lua_State * lua = lua_open();
    luaL_openlibs(lua);
    std::string s;
    std::getline(cin, s);
    const char * buff = s.c_str();
    int error_load = luaL_loadbuffer(lua, buff, sizeof(buff), "dbg1"); // Chargement
    int error_exec = lua_pcall(lua, 0, 0, 0); // Exécution
    Si je tape dans ma console:
    Pas de probl�me, a est bien stock� dans les variables globales de Lua avec la valeur 2. Mais comment stocker une cha�ne ?
    En effet, le code suivant:
    me donnent � chaque fois : "attempt to call a string value". Il ne comprend pas que les guillements sont les d�limiteurs de cha�ne ? Y'a un truc � la strip_quote � faire ? Pourtant en utilisant lua.exe tout se passe bien.

    Merci d'avance.

  2. #2
    Membre actif

    Profil pro
    D�veloppeur informatique
    Inscrit en
    Juillet 2004
    Messages
    46
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 46
    Par d�faut
    OK j'ai r�solu mon probl�me apr�s recherche sur le Net et en testant avec VC. Je marque le sujet r�solu, mais j'�cris la soluce, dans le cas improbable o� quelqu'un rencontrerait le m�me probl�me que moi :

    Le probl�me vient du fait que luaL_loadbuffer attend un buffer fini par \n\0 (tout du moins cela marche dans cette configuration). Pour �viter de manipuler "� la main" notre buffer, on preferra la fonction luaL_dostring qui elle se tape de la fin tant que la cstring est bien form�e (c'est � dire termin�e par '\0') et en plus fait le pcall derri�re.

    Apr�s pour lua/luac : luac est un compilateur qui transforme le code lua en bytecode alors que lua lui est juste un interpr�teur.

    En esp�rant que cela puisse aider quelqu'un !

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

Discussions similaires

  1. Nouvelle console pour un programme Java
    Par arcane86 dans le forum G�n�ral Java
    R�ponses: 6
    Dernier message: 06/10/2011, 16h49
  2. R�ponses: 4
    Dernier message: 10/04/2006, 08h28
  3. Commande Console pour decompresser (Windows)
    Par pzawa dans le forum Autres Logiciels
    R�ponses: 3
    Dernier message: 06/01/2006, 16h02
  4. [TP7] Renvoyer des infos dans la console pour redirection
    Par Natopsi dans le forum Turbo Pascal
    R�ponses: 1
    Dernier message: 05/11/2005, 18h21
  5. Probl�me avec un programme �x�cuter en console
    Par bzhrobby dans le forum Windows
    R�ponses: 2
    Dernier message: 25/04/2005, 10h42

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