Gibt es eine Möglichkeit festzustellen, wie viele Parameter eine Lua-Funktion dauert, bevor sie aus C/C++ - Code aufgerufen wird?Gibt es eine Möglichkeit programmgesteuert in C/C++ zu ermitteln, wie viele Parameter eine Lua-Funktion erwartet?
Ich sah lua_Debug
und lua_getinfo
, aber sie scheinen nicht zu bieten, was ich brauche.
Es mag ein bisschen wie ich bin gegen den Geist von Lua gehen, aber ich möchte wirklich die Schnittstelle, die ich zwischen Lua und C++ haben kugelsicher. Wenn eine C++ - Funktion aus Lua-Code aufgerufen wird, überprüft die Schnittstelle, ob Lua die richtige Anzahl von Argumenten geliefert hat und der Typ jedes Arguments korrekt ist. Wenn ein Problem mit den Argumenten gefunden wird, wird eine lua_error
ausgegeben.
Ich möchte ähnliche Fehler haben, die anders herum überprüfen. Wenn C++ eine Lua-Funktion aufruft, sollte zumindest überprüft werden, ob die Lua-Funktion mehr Parameter als nötig deklariert.
Nun, ich sagte, ich weiß, was ich tue, ist nicht im Geiste von Lua :) Mit Funktionen implementiert und vollständig innerhalb von Lua aufgerufen wird es so funktionieren, wie Sie sagen, aber was ich will, ist ein Weg zur Stärkung der Lua/C++ Schnittstelle. Wenn Sie eine C++ - Schnittstelle implementieren, die Lua-Funktionen verwendet (unter Verwendung unseres benutzerdefinierten Lua/C++ - Bindungssystems), ist es sinnvoll, automatisch zu erzwingen, dass die von C++ aufgerufenen Lua-Funktionen die korrekte Anzahl von Argumenten implementieren. Das heißt ich vermute, dass es nicht möglich ist, zu tun, was ich will. Dachte ich würde trotzdem fragen! –