Wie bekomme ich die Ausgabe der folgenden Optionen:Lua Interpreter Frage
lua_pushstring(L,"print(i)");
lua_call(L,0,0);
Wie bekomme ich die Ausgabe der folgenden Optionen:Lua Interpreter Frage
lua_pushstring(L,"print(i)");
lua_call(L,0,0);
Wenn Sie beliebige Lua-Code von C ausführen möchten, was Sie verwenden müssen, ist luaL_dostring
, wie sie in dieser Frage: C & Lua: luaL_dostring return value
Edit: Bitte beachten Sie, dass Lua Standard print
Funktion wird seine noch drucken Ausgabe direkt an die Konsole. Sie müssen stdout in irgendeiner Weise (wahrscheinlich zu einer Pipe) umleiten, wenn Sie die Ausgabe erfassen wollen.
Wenn Sie den Rückgabewert bedeuten, wird es auf der Oberseite des Stapels sein.
Wenn Sie die Ausgabe von der Druckanweisung gemeint haben ... ist das ein bisschen schwieriger. Die suggestion I read here soll print
durch eine benutzerdefinierte Funktion ersetzen, die das tut, was Sie brauchen.
Natürlich ist dies ein wenig komplex, und ich habe nicht lua in einer Weile berührt ...
Dieser Code soll nicht funktionieren. Sie versuchen, eine Zeichenfolge aufzurufen. Sie müssen einen Funktionswert auf den Stack schieben, , dann, rufen Sie 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
Ich möchte, dass es mir die Ausgabe gibt, wie es im Lua Stand Alone Interpreter gemacht wird. –
Das klärt die Frage nicht. Du meinst wie es Text auf die Konsole druckt? –