問題タブ [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 に答える
989 参照

c# - NLuaでLINQを使用することは可能ですか?

NLuaでLINQを使用できるかどうか疑問に思っていますか? プロジェクトのgithub pageを含むさまざまなソースを検索しましたが、うまくいきませんでした。次の最小限の C# の例を取得しました。

MyLua.lua次のようになります。

実行すると、構文エラー (上記の lua スクリプトでコメントとして示されている) が NLua によって返されます。これが仕様によるものかどうかを知っておくとよいでしょう。そうであれば、NLua の将来のバージョンで LINQ がサポートされる予定はありますか?

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

c# - NLua から関数のリストを取得する

アプリケーションが one.lua や two.lua などの複数のファイルを使用する場合、アプリケーションとのスクリプト インターフェイスに NLua を使用しています。

すべてのファイルのすべての関数を luafunctions のリストに取得したい

NLuaにはそのような機能はないようですが、それを回避する方法はありますか?名前を付けた関数を返すGetFunction(string)メソッドがあります.GetFunctionメソッドでブルートフォースメソッドを実行できますが、それは私のアプリケーションの起動には数時間かかります。

これを回避し、すべてのファイルのすべての関数を luafunctions のリストに入れる方法はありますか?

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

c# - Nlua で C# 静的文字列を使用する方法

アプリケーションとのスクリプト インターフェイスに NLua を使用しています。LUA 言語から C# コードにキーボード入力を送信したいと考えています。

私はこのC#コードで行います。

そして、LUAスクリプトで私は

keypressC では、Nlua は値 57351 を key パラメータに渡します。大丈夫です。

keypressS では、Nlua は値「?」を渡します。キーパラメータに。コです。なぜ「?」という文字があるのか​​わかりません。NLua (つまり LuaInterface) のマーシャリング エラーのように見えますか?

手伝って頂けますか?

0 投票する
0 に答える
635 参照

c# - C# に埋め込まれている場合、Lua でガベージを完全に収集できない

C# から lua コードをコンパイルするために NLua を使用しています。問題は、C# で作成された LuaTables を Lua ガベージ コレクターで完全に破棄できないことです。

サンプルコードは次のとおりです。

このコードは単純に 100,000 個のテーブルを作成し、それを C# で破棄し、lua でガベージ コレクションを呼び出します。使用メモリは変数「mem」で調べることができます。その結果、「mem」は 22.04Kb から約 22.04Kb に増加します。1000キロバイト。これは、この方法で破棄するとメモリ リークが発生することを意味します。

ただし、LuaTable をすぐに破棄すると、次のようになります。

それはうまくいきます。「mem」は同じ +-1Kb のままです。

なぜそうなのですか?Lua gc から完全にアクセスできるようにするには、Lua オブジェクトをどのように破棄すればよいですか?

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

c# - 「オブジェクト参照がオブジェクトのインスタンスに設定されていません」を使用せずに関数を登録します。

C# で IRC ボットを使用しており、当面は Lua Scripting を使用したいと考えています。ボットの起動時に関数を登録し、新しいファイルが追加されたかどうかを検出してロードしたいと考えています。新しいファイル/スクリプトのリロード機能は既に実行しましたが、実行すると、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というメッセージが表示されます。ユーザーが使用できるようにしたいカスタム関数について。

現在のコードは次のとおりです。

ボットの Main() には、現在 2 行しかありません。

0 投票する
0 に答える
762 参照

vb.net - NLua - システム DLL が見つからないという例外

VB.NET で Lua を使用しようとすると、深刻な問題が発生します。私の質問は、このライブラリを適切にロードして実際に使用できるようにする方法です。

これが私の試みです。

  1. NuGet 経由で Lua ライブラリのいくつかのバリエーションを試しました。そして、いくつかの調査の後、LuaInterface を見つけました (NuGet では利用できず、公式リポジトリは NLuaを後継として参照しています)。

  2. NuGet から NLua のみを参照して、ベイビー フレッシュ プロジェクトを開始しました。-- 失敗

  3. NuGet からの Lua への参照を追加 -- それでも失敗する
  4. 新しいプロジェクトを開始し、現在のバイナリを NLua のgithubから直接ダウンロードしました--- 失敗します。

上記のすべてのケースで、ビルド フォルダーをチェックして、すべての DLL が存在することを確認しました (Visual Studio はすべての dll を常に展開しているわけではないため、この例については SQLite ライブラリを参照してください)。

私が今いるエラーはこれです

タイプ 'System.DllNotFoundException' の初回例外が KeraLua.dll で発生しました

このファイルへの参照を明示的に宣言すると、大きな問題が発生します。これは、KeraLua.dll と NLua.dll の両方に同じパラメーターを持つ「Lua」メソッドがあるため、競合が発生するためです。

クラッシュする場所で使用しているコードは非常に単純です。

このライブラリがなぜそれほどうまくいかないのか、または私が間違っている可能性があるのか​​ について誰かが光を当てることができれば、それは大歓迎です. 現在、このライブラリを使用して、Lua で記述されたテーブルを .net 環境内に公開しようとしています。ここでこれに関する例を見てきましたが、非推奨の LuaInterface オブジェクトを参照しているため、日付が付けられています。