我们正在 .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()
如您所见,这里我正在加载标准程序集和类型,这并没有造成太大问题。但是,如果我在 .NET 4.0 下编译了自己的 dll 'LuaTest' 并尝试在 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'
运行后,解释器抛出: lua: error loading module 'LuaTest' from file '.\LuaTest.dll': The specified procedure could not be found。
我是 .NET 框架和 LuaInterface 的新手。也许我做错了什么。请帮助我。非常感谢!
编辑:也许我应该在我的 dll 中有一个 Lua 的“入口点”,以表明这个 dll 是 LUA 可加载的???
编辑:Lua 不是 LUA。对讲葡萄牙语的人没有冒犯。我使用的 Lunanet 必须与 .NET 4.0 兼容,否则第一段代码将无法运行。