LuaJava を使用して Java から単純な Lua 関数を呼び出そうとしています。calc.lua:
function foo(n) return n*2 end
以上が calc.lua にあるすべてであり、コマンド ラインからの後続の呼び出しが機能します。
常にエラーが発生する呼び出しは次のとおりです。
L.getGlobal("foo");
L.pushNumber(8.0);
int retCode=L.pcall(1, 1,-2); // retCode value is always 5 pcall(numArgs,numRet,errHandler)
String s = L.toString(-1); // s= "Error in Error Handling Code"
L.remove(-2);も試しました。L.insert(-2);
なぜエラーが発生するのか、またはエラーが何であるかはわかりません。エラーハンドラを正しく設定していないのでしょうか?それで、それは電話をかけませんか?ロード後、コンソールから試してみたところ、 print(foo(5)) を実行して期待どおりに 10 を取得できました。
更新: スタックにエラー ハンドラーを提供する必要があるようです。このようなエラー ハンドラーのシグネチャとは何か、またそれをスタック上のポイントに配置する方法を教えてください。ありがとう