問題タブ [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.

0 投票する
1 に答える
516 参照

c# - NLua からジェネリック C# メソッドを呼び出す構文

NLua を使用して Lua からジェネリック C# 関数を呼び出すための正しい構文を理解するのに苦労しています。

Lua から次の C# XNA 関数を呼び出そうとしています。

しかし、ジェネリック<T>部分の構文に問題があります。LuaScriptException を取得しているため、現在の lua 呼び出しは次のようになっていますが、これは明らかに正しくありません。

0 投票する
1 に答える
395 参照

c# - NLua で JArray を反復処理する

JArrayNLua でa を繰り返し処理しようとしていますが、どうにかできません。JArray はユーザーデータ (ユーザーデータとは何ですか?) として扱われるため、反復できません。

を with ac# メソッドに変換しJArrayJValue[]も機能しません。

私が見る限り、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# 列挙子を取得しても機能しません

0 投票する
1 に答える
474 参照

c# - C# NLua: ジェネリック パラメーターへのアクセス

ジェネリック パラメーターを使用するエンティティ コンポーネント システムがあります。NLua を使用して Lua スクリプトを動作させようとしています。

しかし、Lua 環境からジェネリック パラメータにアクセスする方法がわかりません。

このようなもの?:

これを行う方法がない場合、文字列を介してコンポーネントにアクセスできるようにするにはどうすればよいですか?

私のコードに問題があるとは思わないので、リクエストに応じてコード スニペットを提供します。

0 投票する
1 に答える
680 参照

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 は、例外処理のみを整理できれば、私が考えていることにはほぼ完璧に思えます。

0 投票する
1 に答える
675 参照

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 をビルドする方法を誰か教えてもらえますか? 動作するバイナリが既にありますが、自分ですべてを再構築できる必要があります。おそらく、単に間違ったソース ツリーを使用しているのでしょう。