問題タブ [luainterface]
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# - Mono/Linux で LuaInterface を使用する方法
Linux の Mono でLuaInterfaceを使用しようとすると(Ubuntu 9.04 で Mono 2.0 を使用)、次の例外が発生します。
この Web サイトによると、 LuaInterfaceは Mono で使用できます。MoMAもそう言っています。
lua51.dll
Mono と互換性があるように再コンパイルすることは可能ですか?
c# - LuaInterfaceを「修正」しようとしているときにDllNotFoundExceptionが発生しましたが、なぜですか?
私のゲームは Mono で使用できるようにしたいのですが、LuaInterface がぎくしゃくしているため Linux では動作しないようです (詳細については、関連する SO スレッドを参照してください)。そこの。私は独自の Lua511.LuaDLL クラスを作成して、LuaInterface で使用されるクラスを反映し、すべてのパブリック関数を lua51 のそれぞれの DllImport に置き換えました。
編集した LuaInterface.dll (独自の Lua511.LuaDLL をホストするようになりました)と純粋なネイティブ Win32 lua51.dll をゲームのスタートアップ フォルダーに配置すると、LuaInterface が初期化を試みると、どういうわけか DllNotFoundException が発生します。
もちろん、DLL がすぐそこにあるので、そうすべきではありませんよね?奇妙なことに、lua51.dll の混乱した .Net バージョンを元に戻すと、代わりに EntryPointNotFoundException が発生します。頭がおかしくなる。
それでどうしたの?
関連するソース コード: Lua511.cs、LuaInterface プロジェクトにドロップし、参照を削除して置き換えます。
編集:これを台無しにして、代替案を探すつもりです。または、自分でロールします。または、Linux の互換性を気にするのをやめてください。
c# - LuaInterface と 64Bit
現在、使用しているゲーム エンジンで LuaScript v5.1 を使用しています。それに付随する便利なLuaInterface。さまざまなOSを実行しているさまざまなシステムでテストしました。LuaInterface は 64 ビット オペレーティング システムで失敗するようです。LuaInterfaceは非常に便利で、lua51を使用して自分でより広範なインターフェイスを作成できるとは思わないため、誰かが64ビットコンパイルされたLuaInterface.dllを教えてくれますか、または使用できるLuaInterfaceの代替手段はありますか? (残念ながら私はあまり上手ではありません)
ヘルプやリンクは大歓迎です。みんなありがとう!
c# - .NETからLua関数を呼び出す方法
LuaInterfaceライブラリを使用して.netでluaを実行しましたが、正常に動作します。lua経由でCLRにアクセスできました。しかし、C#からLua関数を呼び出す方法は?
c# - キーがSystem.DoubleであるネストされたLuaテーブルを読み取ります
C#とLuaInterfaceを使用して、ネストされたテーブルを読み取ろうとしていますが、テーブルを含むキーを開こうとすると、nullのLuaTableが取得されます。
.luaファイル:
次のコマンドでテーブルを開くことで、インベントリの下のエントリを正常にforeachできます。
私ができないことは、在庫アイテムを開いて、同じ方法でそのエントリを列挙することです。キーがSystem.Double
タイプだからですか?これは失敗します:
tblがnullであるため、例外があります。
事実上、キー(在庫アイテム)を列挙したら、ネストされたテーブルにドリルダウンして、それらのコンテンツを操作したいと思います。ご覧のとおり、ネストされたテーブルへの参照を私が行っている方法で取得することはできません。
c# - LuaInterface - オーバーロードされたメソッドを登録するには?
少し問題が発生したときに、Lua を C# アプリに統合しようとしています。もっと専門知識のある人が正しい方向に向けてくれることを願っていました。
次の C# メソッドがあるとします。
次のようなことができるように、Lua スクリプト環境に登録したいと思います。
RegisterFunction("MyMethod", this, this.GetType().GetMethod("MyMethod")) を試しましたが、あいまいな一致について合理的に文句を言います。何か案は?
lua - LuaInterface: スクリプト スコープにテーブルを追加します
質問: C# オブジェクト (できれば匿名型) を使用して、C# から 'LuaInterface' スクリプト スコープにテーブルを挿入するにはどうすればよいですか?
c# - C#バイト配列をLuaInterfaceに渡す
LuaInterfaceインスタンスに渡す必要のあるバイト配列がC#コードにあります。Luaでpack()を使用し、結果の文字列をC#に渡して、で変換することはできますSystem.Text.Encoding.UTF8.GetBytes()
が、逆の方法ではうまくいかないようです。
簡単な解決策はありますか?バイト配列をグローバル値に割り当てないようにしたいと思っています。
編集:
私は今朝いくつかの新しいことを試みました。を使用してみましたが、LuaDLL.cppLuaInterface.GetFunction()
でヒットするまですべてが機能します。lua_pushstring()
この時点で、C#文字列は。を介してchar*に変換されMarshal::StringToHGlobalAnsi().ToPointer()
ます。この関数はnullで終了する文字列を想定しているようで、文字列の最初のバイトは0なので、luaコードで空の文字列を取得します。
c# - .net4 での LuaInterface のロード
優れたLuaInterfaceを使用したい C# アプリケーションに取り組んでいます。ただし、アプリケーションを実行すると、LuaInterface で何かをしようとすると、次の例外が発生します。
混合モード アセンブリは、ランタイムのバージョン 'v2.0.50727' に対してビルドされており、追加の構成情報がないと 4.0 ランタイムに読み込むことができません。
このロードを適切に行うために、どのような追加の構成情報を提供できますか?
c# - LuaInterfaceをC#アプリケーションに埋め込むと、パフォーマンスが低下しますか?
.NET Framework 4.0を使用してC#で記述されたアプリケーションにLuaInterfaceプロジェクトを埋め込みました。LuaInterfaceとLua5.1をコンパイルした後、アプリケーションでそれらを参照し、Lua VMを作成して、いくつかの.NETクラスを公開しました。Lua VMが多くの呼び出しを行わない場合、パフォーマンスはまったく影響を受けません。ただし、多数の.NET関数を呼び出し始めると、アプリケーション全体が遅くなり、応答しなくなります。
これに対応して、LuaVMを実行するための追加のスレッドを作成しました。ただし、何らかの理由で、Luaが関数呼び出しを実行している間、GUIが更新されるスレッドは更新されないため、GUIが途切れます。ウィンドウを移動すると、しばらく応答しない、次に移動する、応答しないなどのことがはっきりとわかります。
この問題を解決するにはどうすればよいですか?Luaに独自のスレッドを与えれば、別のスレッドは影響を受けないはずだという印象を受けました。これは純粋に私自身のコードに何らかの形で関連していますか?LuaInterfaceには、.NET関数の呼び出し(パフォーマンスに関して)にいくつかの重大な問題がありますか?他に何を使用できますか?