2010-11-25 7 views

Antwort

3

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.

0

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 ...

+0

Ich möchte, dass es mir die Ausgabe gibt, wie es im Lua Stand Alone Interpreter gemacht wird. –

+0

Das klärt die Frage nicht. Du meinst wie es Text auf die Konsole druckt? –

2

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