問題タブ [luajit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - c++ 名前空間の関数を luajit ffi で使用することは可能ですか?
名前空間に多くの関数とクラスを含む多くの C++ コードがあります (boost など)。
今、LuaJiT2 をスクリプト エンジンとして埋め込もうとしていますが、関数の呼び出しや名前空間から他のものを使用することについては何も見つかりません。
では、FFI を使用して C++ 名前空間から LuaJIT に関数を渡すことは可能ですか?
lua - LuaJITにはモジュールエラーが必要です
LuaJITが.luaではなく.dllを検索する理由と、この動作を修正する方法を教えてください。
lua - LuaJITはLuaRocksによってインストールされた岩を見ていません
lua -e "print(package.path)"
./?.lua;/usr/share/lua/5.1/?.lua;/usr/share/lua/5.1/?/init.lua;/usr/lib/lua/5.1/?.lua;/usr/ lib / lua / 5.1 /?/ init.lua
luajit -e "print(package.path)"
./?.lua;/usr/local/share/luajit-2.0.0-beta8/?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1 /?/init.lua
luaのpackage.pathを追加してみましたが、サイコロはありません。LuaJITは岩を見つけることができないようです、それは奇妙です。ここで何をすればいいですか?
c - C構造体ポインタをluaスクリプトに渡す
構造体ポインターを lua スクリプトに渡し、コピーなしで lua からそのメンバーに到達する方法があることを知りたいです (読み取りと書き込みの目的で)。
たとえば、ポインタを介して ac 構造体のメンバーを直接上書きすることは可能ですか?
(私はluajitを使用しています)
lua - 標準のLuaバイトコードとLuaJITバイトコードの違い
LuaJITバイトコードファイルを逆コンパイルしようとしています。私はなんとかそれを分解することができました(しかしそれを再組み立てする方法を見つけることができません)。そこで、LuaJITバイトコードからLuaDecを正常に実行する標準のLuaバイトコードに変換するソフトウェアを作成することを検討しています。
しかし、LuaJITバイトコードと標準のLuaバイトコードの違いは何ですか?
c - luajit ffi コンストラクターのパラメーター ルーティング
チュートリアル セクションの例: 「C 型のメタメソッドの定義」は次のようになります。
「コンストラクター」がどこにあるのか少し混乱しています。デフォルトpoint(3,4)
では、暗黙のルーティング3 -> x
と5 -> y
. コンストラクターにロジックを掛けたい場合はどうなりますか? 別の言い方をすれば..デフォルト以外のコンストラクタを指定するにはどうすればよいですか?
私は一連の c ライブラリをオブジェクト指向の lua コードにラップしていますが、正規の lua への移植性は気にしません。create
具体的には、オブジェクトの有効期間管理のためにinit
、オブジェクト指向プログラミングの 3 つのコア関数をフックする必要がありますdestroy
。destroy が__gc
私のタイプのメソッドになることはわかっていますmetatable
。そのため、 と の実行方法を知る必要がcreate
ありinit
、できれば luajit によって行われるデフォルトの初期化を回避する必要があります。
編集
ffi.new
および他のものには、型の作成を管理する一連の規則があります (luajit の ffi セマンティクス ページに記載されています)。それはセマンティクスのセクションにあります。カスタムクリエーターとイニシャライザー(acライブラリーの一部として提供される)をffiオブジェクトの作成にぶら下げる最もクリーンな方法は何かを知りたいです。
c - チャンクファイナライザーを実装するluajitffi
私はlibcurlをluajitffiでラップすることに取り組んでいます。ファイナライザーが呼び出されません。
ここで何が欠けていますか?:D
ところで、CURLはtypedef void CURL;
、私がやろうとしている方法が十分にクリーンではないと確信しているために定義されています。何かアドバイス ?
ユーレカ!:自己回答-明白な問題がある場合でもコメントに興味があります。
c - Lua ファイル オブジェクトを C FILE* に変換する
LuaJIT と FFI を使用してラッパーを作成しています。パラメータとして aを取る関数を含む C ライブラリがFILE*
あります。を使用してファイルを開くLua関数でio.open()
。Lua ファイル オブジェクトから C にキャスト、変換、または抽出する方法はありますFILE*
か? これは簡単なようですが、解決策が見つかりません。前もって感謝します。
lua - Lua用のDSLは機能しますか...?(これは単純すぎて真実ではないようです)
私はプログラミング言語としてLualocal
が大好きですが、すべてのローカル変数に対して常に「」と入力しなければならないのは信じられないほどバグです。
それは私のコードをより雑然と見せてくれるだけです。
ですから、Luaの上にドメイン固有言語(DSL)を作成して、次の変数の命名規則を使用することはできますか?
- 変数名がすべて大文字の場合、それはグローバル変数です
- それ以外の場合、変数は
local
変数です
質問:これは機能しますか?はいまたはいいえ?
言い換えると:
だから今、デフォルトのLuaの次のコード:
私のDSLLuaで:
更新:
ローカル関数はどうですか?
次のコードはどのように機能しますか?
すべてのグローバル関数をすべて大文字で作成したいのかどうかはわかりません。
たぶん私は関数を無視し、' local
'識別子...思考を必要としますか?