2010-11-25 2 views

Répondre

3

Si vous voulez exécuter du code arbitraire Lua de C, ce que vous devez utiliser est luaL_dostring, comme dans cette question: C & Lua: luaL_dostring return value

Edit: S'il vous plaît noter que la fonction par défaut print de Lua imprimera sa sortie directement à la console. Vous devrez rediriger stdout d'une certaine façon (probablement vers un tube) si vous voulez capturer sa sortie.

0

Si vous voulez parler de la valeur de retour, il sera sur le dessus de la pile.

Si vous vouliez dire la sortie de l'instruction print ... c'est un peu plus difficile. Le suggestion I read here doit remplacer print par une fonction personnalisée qui répond à vos besoins.

Bien sûr, cela est un peu complexe, et je n'ai pas touché lua en temps ...

+0

Je voudrais qu'il me donne le résultat comme c'est fait dans l'interpréteur autonome de Lua. –

+0

Cela ne clarifie pas la question. Vous voulez dire comment il imprime du texte sur la console? –

2

Ce code ne doit pas fonctionner du tout. Vous essayez d'appeler une chaîne. Vous devez appuyer sur une valeur de fonction sur la pile, puis appelez lua_call.

lua_getglobal(L, "print");   // push print function onto the stack 
lua_pushstring(L, "Hello, World!"); // push an argument onto the stack 
lua_call(L,1,0);     // invoke 'print' with 1 argument