Comment puis-je obtenir la sortie de ce qui suit:Lua Interprète Question
lua_pushstring(L,"print(i)");
lua_call(L,0,0);
Comment puis-je obtenir la sortie de ce qui suit:Lua Interprète Question
lua_pushstring(L,"print(i)");
lua_call(L,0,0);
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.
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 ...
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
Je voudrais qu'il me donne le résultat comme c'est fait dans l'interpréteur autonome de Lua. –
Cela ne clarifie pas la question. Vous voulez dire comment il imprime du texte sur la console? –