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

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

.net - ユーザー入力への応答とフレームのレンダリングを続行しながら、続行するまで x 秒待機します

バックグラウンド

現在、 Lua スクリプトでアプリケーションを制御できるように、LuaInterfaceを利用する XNA アプリケーションを作成しています。


私が欲しいもの

私の開発では、多くのことがおそらく「時間」に基づいていることに気付きました。そのようなものには、情報を表示してから x 秒後にそれを削除する、x 秒かかるとゲームを終了する、 x秒ごとにカメラを特定の距離だけ緩めるのに使用されることなどが含まれます。自分のアプリケーションではなく Lua で関数を実装したかったwaitのですが、この時点では入力を受け付けています (機能させることができないため)。


これまでに試したこと

inv.lua

gELua.vb

Game(私の XNA ゲーム オブジェクトはどこにありますか)


では、なぜ私のアイデアがうまくいかないのでしょうか?

Game.Tick()現在の問題は、すべてを継続するために毎回呼び出しているにもかかわらず、アプリケーションの XNA 部分が入力の受信を停止することです。


だから、私の質問は、これを行うためのより良い方法はありますか? ユーザー入力で問題が発生するまでは、かなりうまく機能していると思いました。うまく機能するこのようなものを実装した人はいますか?

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

c# - LuaInterface 用の Lua モジュールの構築

LuaInterfaceにロードする必要がある Lua モジュール ( lpack ) があります。プロジェクトでいくつかの異なる構成を試しましたが、リンクがわかりません。

エラーが発生しますunresolved external symbol "void __stdcall lua_replace(struct lua_State *,int)" (?lua_replace@@YGXPAUlua_State@@H@Z) referenced in function "int __stdcall l_unpack(struct lua_State *)" (?l_unpack@@YGHPAUlua_State@@@Z)

dumpbin /exportslua51.lib ファイルで実行する?lua_replace@@YAXPAUlua_State@@H@Zと、 Dependency Walker を使用して lua51.dll で見つけたものと一致するものを見つけることができる?lua_replace@@YAXPAUlua_State@@H@Zため、関数は存在しますが、名前は一致しません。

私はこのレベルのリンカー管理にあまり詳しくないので、これは私の単純なエラーかもしれません。lpack ビルドの値が lua51.lib 入力ファイルの値と一致しないのはなぜですか?

アップデート

lua51.dll および lua51.lib ファイル内のすべてのエクスポートは__cdecl、私の lpack プロジェクトは に設定されてい__stdcallます。そのプロパティを変更すると (C/C++ -> Advanced -> Calling Convention の下)、コンパイルの問題が修正され、lpack.dll ファイルが作成されました。

ただし、lua からファイルをロードしようとするrequire('lpack')と失敗します。The specified procedure could not be found.

LoadLibraryA でライブラリをロードする lua C コードを中断すると、NULL と 0x7F の GetLastError() コードが返されます。

更新 2

ロードしようとしていた lpack.dll ファイルは、間違った出力ディレクトリが原因で古くなったため、LoadLibrary の失敗が修正されました。次に GetProcAddress が失敗しextern "C"ますが、Mud の推奨に従って lpack.c ファイルのエクスポート関数に追加すると、問題は解決しました。

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

c# - Luainterface、ac# コードからクラス全体を渡す方法は?

クラス全体を C# コードから lua に渡したいので、LUA で新しいオブジェクトを作成し、そのメソッド、フィールドなどを使用できます。それが完了したら、ac# コードで作成され、何らかの方法で lua に渡されたオブジェクトを lua で使用できるかどうかを知りたいです。

私のコードは次のとおりです: atm、クラス Person1 の luainterface オブジェクトで作成し、say() を lua スクリプターに入力したときにその関数を使用することはできません (そこでオブジェクトを作成せずに)、Person2.say( の出力を取得しています。 )

0 投票する
2 に答える
549 参照

c# - Lua そのようなタイプはありません: loadassembly

Luaを使用してスクリプトを作成しようとしています:-

と test.lua :-

しかし、それはこの例外をスローする動作していません:-

test.lua 、 lua51.dll 、および LuaInterface.dll が同じディレクトリにありますが、何が欠けていますか?

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

c# - LuaInterface を使用して C# クラスを LUA 関数にマッピングする

クラスをロードするだけで、クラスを C# 関数に直接マップする方法はありますか? 100以上作っRegisterFunctionsてマッピングする代わりに?

例:みたいな

ルアの内部:

0 投票する
2 に答える
1985 参照

c# - Lua (for Windows) 用にロード可能なカスタム .NET dll を作成するには?

私たちは .NET フレームワークでプロジェクトを行っており、その機能のほとんどを後で Lua スクリプトで利用できるようにしたいと考えています。LuaInterface の助けを借りて、dll をコンパイルし、それを Lua スクリプトにロードできると考えました。しかし、どういうわけかうまくいきませんでした。

DID の機能は次のとおりです。

ご覧のとおり、ここでは標準のアセンブリと型を読み込んでいますが、これは大きな問題にはなりませんでした。ただし、独自の dll 'LuaTest' を .NET 4.0 でコンパイルして、LUA にロードしようとすると、. それは動かなかった。のようなものを書きました。

ここで、'PlanetarySystem' は LuaTest のクラスです。このコードを実行すると、インタプリタは次のように言うでしょう: グローバル 'PlanetarySystem' (nil 値) の呼び出しを試みます。

dllをロードする別の方法も試しました:

実行後、インタープリターは次のメッセージをスローします。

私は .NET フレームワークと LuaInterface の初心者です。たぶん、私はまったく間違ったことをしました。これについて私を助けてください。どうもありがとう!

編集:おそらく、このdllがLUAロード可能であることを示すために、dllにLuaの「エントリポイント」が必要ですか???

編集:LUAではなくLua。ポルトガル語を話す人々に不快感はありません。私が使用している Lunanet は、.NET 4.0 と互換性がある必要があります。そうでない場合、最初のコードは機能しません。

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

integration - C# と LuaInterface: Lua で C# オブジェクトにテーブル エントリを追加する方法

私は MonoDevelop で SharpLua を使用しています。Luaから使えるはずのC#側のクラスを作りました。Lua からすべてのフィールドにアクセスできます。それは非常に簡単です。

でLuaからアクセスできます

さて、Lua で新しいフィールドを作成したいと思います。Luaでは次のようになります

しかし、これはうまくいきませんでした。ObjectTranslator でエラーが発生します。そのため、Lua からテーブルを拡張できませんでした。C# からこの新しいエントリにアクセスしたくありませんでした。それらを作成することだけが可能であるべきです。

これを達成する他の方法はありますか?LuaTable からクラスを作成し、これを Lua に挿入できますか?

Luaで使用するよりも

しかし、知りたいことが LuaTable で変更された (NewLuaTable.Name が変更された) という通知をどのように受け取ったのでしょうか?

ご協力ありがとうございました。

0 投票する
3 に答える
3868 参照

c# - dll を介して C# クラスを Lua 関数にマッピングする

「LuaTest」名前空間には、「Planet」というクラスがあります。C# コードは次のようになります。

次に、LuaTest.dll をビルドし、このファイルを Lua スクリプトが保存されているフォルダーと同じフォルダーにコピーしました。私が書いたLuaスクリプトで:

ただし、このコードは機能しません。Lua インタープリターは次のエラーをスローします。

私の LuaTest アセンブリがまったくロードされていないと思われます。誰かが私が間違っていた場所を指摘できますか? この問題に何日も悩まされていたので、とても感謝しています。

また、LuaInterface.dll が .NET4.0 環境で再構築されたバージョンであることを追加すると役立つ場合があります。

0 投票する
2 に答える
3715 参照

c# - LuaInterface-RegisterFunctionオブジェクトリファレンス

LuaInterfaceをC#に統合しようとしていますSystem.NullReferenceExceptionが、C#関数をLuaにバインドしようとすると、が表示されます。私がコンパイルして実行しようとしているコードは次のとおりです。

そして、このコードを実行するSystem.NullReferenceExceptionAdditional information: Object reference not set to an instance of an object.RegisterFunctionメソッドが機能しなくなったというメッセージが表示されます。

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

c# - LuaInterfaceで構文エラーを処理する

LuaInterfaceを使用してLuaScriptingインターフェイスをC#プロジェクトに統合しようとしています。

構文的に正しいコードを実行すると期待どおりに機能しますが、構文エラー(またはその他のエラー)がスクリプトに導入されるとすぐに、SEHExceptionエラーに関する情報なしでがスローされます。

動作をトリガーする簡単な例:new LuaInterface.Lua().DoString("die");

もちろん、これはLuaのエラー処理メカニズムを完全に無効にし、私にとっては目立たないものです。

どうやらこれは2011年以来開いている既知のバグです。

回避策、このバグのないバージョンのLuaInterfaceはありますか、それともエラーを正しく処理する代替のluaラッパーがありますか?