私たちは .NET フレームワークでプロジェクトを行っており、その機能のほとんどを後で Lua スクリプトで利用できるようにしたいと考えています。LuaInterface の助けを借りて、dll をコンパイルし、それを Lua スクリプトにロードできると考えました。しかし、どういうわけかうまくいきませんでした。
DID の機能は次のとおりです。
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 のクラスです。このコードを実行すると、インタプリタは次のように言うでしょう: グローバル 'PlanetarySystem' (nil 値) の呼び出しを試みます。
dllをロードする別の方法も試しました:
package.path = package.path .. ";" .. "/?.dll"
require 'luanet'
require 'LuaTest'
実行後、インタープリターは次のメッセージをスローします。
私は .NET フレームワークと LuaInterface の初心者です。たぶん、私はまったく間違ったことをしました。これについて私を助けてください。どうもありがとう!
編集:おそらく、このdllがLUAロード可能であることを示すために、dllにLuaの「エントリポイント」が必要ですか???
編集:LUAではなくLua。ポルトガル語を話す人々に不快感はありません。私が使用している Lunanet は、.NET 4.0 と互換性がある必要があります。そうでない場合、最初のコードは機能しません。