問題タブ [nlua]
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# - NLua からジェネリック C# メソッドを呼び出す構文
NLua を使用して Lua からジェネリック C# 関数を呼び出すための正しい構文を理解するのに苦労しています。
Lua から次の C# XNA 関数を呼び出そうとしています。
しかし、ジェネリック<T>
部分の構文に問題があります。LuaScriptException を取得しているため、現在の lua 呼び出しは次のようになっていますが、これは明らかに正しくありません。
c# - NLua で JArray を反復処理する
JArray
NLua でa を繰り返し処理しようとしていますが、どうにかできません。JArray はユーザーデータ (ユーザーデータとは何ですか?) として扱われるため、反復できません。
を with ac# メソッドに変換しJArray
てJValue[]
も機能しません。
私が見る限り、2つの可能な解決策があります。1. nlua の Iterable 関数を取得します。2. JArray を Lua テーブルに変換し、その上で for ループを使用します。
私はその2つのいずれにも成功していません。これについてもっと経験のある人はいますか?前もって感謝します。
私が試したこと:
regCommands は、JToken に多数の JObject を含む JArray です。
これにより、jArray がユーザーデータである ipairs(jArray) でエラーが発生します。
JArray を取り、JToken[] を吐き出す ac# 関数です
私が試した他の何か:
regCommands[keyVal.Name:lower()] = keyVal.first
これは、論理的な理由がなくてもクラッシュし
ます。
ac# 列挙子を取得しても機能しません
c# - C# NLua: ジェネリック パラメーターへのアクセス
ジェネリック パラメーターを使用するエンティティ コンポーネント システムがあります。NLua を使用して Lua スクリプトを動作させようとしています。
しかし、Lua 環境からジェネリック パラメータにアクセスする方法がわかりません。
このようなもの?:
これを行う方法がない場合、文字列を介してコンポーネントにアクセスできるようにするにはどうすればよいですか?
私のコードに問題があるとは思わないので、リクエストに応じてコード スニペットを提供します。
c# - NLua 処理 C# 例外
lua から呼び出された C# 関数が例外をスローする可能性がある既存の C# アプリケーションのスクリプト作成について、NLua を検討しています。
これまでのところ、私はこれを見つけました:
呼び出された C# 関数でlua コードが例外を処理しない場合、NLua はそれをラップして再スローし、C# レベルで処理できるようにします。
lua コードがxpcall を介して例外を「キャッチ」する場合、例外の詳細 (例: -.Message) にアクセスする方法が見つかりませんでした。
前者では、lua レベルのスタックダンプである debug.traceback() を取得できますが、例外の詳細は取得できません。後者は例外を提供しますが、Lua スタックダンプを取得する方法はありません (.Source で lua ファイルと行を取得しますが、それだけでは十分ではありません)。
質問は:
NLua "xpcall" エラー ハンドラで C# 例外の詳細を取得できますか?
または、NLua で C# 例外を処理して (lua スタックダンプを作成する目的で)、再スローすることはできますか?
または、egluaState.DoFile("myScript.lua") が例外を引き起こしたときに、"lua 状態" から lua スタックダンプを取得できますか?
どんな助けでも大歓迎です。NLua は、例外処理のみを整理できれば、私が考えていることにはほぼ完璧に思えます。
building - ソースから NLua をビルドする (Windows): Lua52.dll?
Windows でソースから NLua をビルドするのに苦労しています。変更された Lua バージョンが必要です。そうしないと、"lua52.dll" が見つからず、コードが失敗します。 https://github.com/NLua/NLua/issues/53
ここから取得しようとしました https://github.com/NLua/lua 次に、「cmake」を使用しました。結果の「lua.sln」をビジュアルスタジオでビルドしました。
何が起こるかというと、「lua52d.dll」を取得することです (「d」に注意してください)。名前を変更すると、「KeraLua」によって「System.BadImageFormatException」がスローされます(NLuaの「tests」フォルダーにある「NLua.exe」実行可能ファイルを試したとき)。
NLua に必要な変更された lua52.dll をビルドする方法を誰か教えてもらえますか? 動作するバイナリが既にありますが、自分ですべてを再構築できる必要があります。おそらく、単に間違ったソース ツリーを使用しているのでしょう。