私たちは.NETフレームワークでプロジェクトをやっており、その機能の大部分を後でLuaスクリプトで利用できるようにしたいと考えています。私はdllをコンパイルし、LuaInterfaceの助けを借りてそれをLuaスクリプトにロードできると思った。しかし何とかそれはうまくいかなかった。Lua(forWindows)用のカスタム.NET DLL読み込みを作成するには?
仕事をやったは以下の通りです:
require 'luanet'
luanet.load_assembly("System.Windows.Forms")
Form = luanet.import_type("System.Windows.Forms.Form")
Button = luanet.import_type("System.Windows.Forms.Button")
form1 = Form()
button1 = Button()
あなたが見ることができるように、ここで私は多くの問題が発生しなかった、標準アセンブリと型をロードしています。 しかし、もし私が独自のdll 'LuaTest'を.NET 4.0でコンパイルしてLUAにロードしようとすると、うまく行かなかった。
require 'luanet'
luanet.load_assembly("LuaTest")
PlanetarySystem = luanet.import_type("LuaTest.PlanetarySystem")
solarSystem = PlanetarySystem()
ここで、 'PlanetarySystem'はLuaTestのクラスです。このコードを実行すると、通訳者はグローバルPlanetSystem(nil値)を呼び出そうとします。
私もDLLをロードする別の方法を試してみました:実行した後に
package.path = package.path .. ";" .. "/?.dll"
require 'luanet'
require 'LuaTest'
、インタプリタはスロー:LUA:エラーローディングモジュール「をLuaTest」ファイルから「\ LuaTest.dll。」:指定されたプロシージャ可能性があり見つけられない。
私は.NETフレームワークとLuaInterfaceのかなりの初心者です。おそらく、私は何か完全に間違ったことをしました。これで私を助けてください。どうもありがとう!
編集:おそらく私は、このDLLがLUAの読み込み可能であることを示すために、私のdllでLuaの 'エントリポイント'を持っているはずですか?
編集:LUAではありません。ポルトガル語を話す人々には違反しません。私が使用しているLunanetは.NET 4.0と互換性がなければなりません。さもなければ、最初のコードが動作しません。
Luaは頭字語ではなく、適切な名前です。 LUAではなく、LUAです。 –
はあなたのLuanetビルドは.Net 4.0と互換性がありますか? –