lua-api

    2

    1答えて

    私はLua C APIを使って自分のゲームエンジンを作っています。また、私はいくつかのC関数を持っ my_lib = { system = { ... }, keyboard = { ... }, graphics = { ... }, ... } 、私は、そのような何かに登録したい:私はそのようなLuaのテーブルの階層を得たので、 inline st

    3

    1答えて

    こんにちはを取得するための表では、次のとおりです。 arg = { MagicNumber = {MagicNumber, 0}, ProdNum = {ProdNum, 1}, LetterR = {LetterR, 0xc}, Revision = {Revision, 0xd}, Space1 = {Space1, 0xe},

    1

    1答えて

    後で非同期で呼び出すためにLuaクロージャを格納する方法が必要です。 第二のアイデアは、私はそれをプッシュし、後でそれを呼び出すことができ、メタテーブルにクロージャを保存することでしたが、 直接私の最初のアイデアだったlua_tocfunctionが、閉鎖がcfunctionではなく、Cから呼び出すことができませんそれは私がコピー閉鎖できないようです。 ()。 だから私はあなたの助けが必要です。ク

    1

    1答えて

    Lua APIには、値が1の場合はメタ機能付きのテーブルをフェッチする関数lua_getmetatableがあります。 (ルアAPIの一部である)Lua補助ライブラリには、別の関数luaL_getmetatableがあります。これは、LUA_REGISTRYINDEXから値を取得します。 しかし、このライブラリluaL_getmetafieldの別の機能は、あなたが期待するものではありません。ge

    1

    2答えて

    私はC++プロジェクトを持っており、私はduktape JSライブラリを使用しています。私はJSでグローバル関数を登録し、この関数でクロージャーデータとしてオブジェクトへのポインタを保存する必要があるので、関数が呼び出されたときにこのポインタにアクセスできます。 私はLuaのC APIのこれを行う方法を知っている: lua_pushlightuserdata(L, this); lua_push

    2

    1答えて

    (__eqのメタメソッドを使用して)Luaの等価演算子をオーバーライドするときに、プリミティブの等価性をチェックする方法がありますか(つまり、オーバーライドされた__eqは呼び出しませんが、これをC APIから行う必要がありますが、そこでは適切な関数を見つけることができません。例えば :some_comparison()は__eqメタメソッドを呼び出しません lua_newtable(L); l