Tag: lua

如何为Lua(forWindows)创建可加载的自定义.NET DLL?

我们正在.NET框架中进行一个项目,并希望以后为Lua脚本提供大部分function。 我以为我可以编译一个DLL并在LuaInterface的帮助下将其加载到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() 如您所见,这里我正在加载标准assembly和类型,这不会造成太大问题。 但是,如果我在.NET 4.0下编译自己的dll’LuaTest’并尝试在LUA中加载它。 那没起效。 我写了类似的东西, require ‘luanet’ luanet.load_assembly(“LuaTest”) PlanetarySystem = luanet.import_type(“LuaTest.PlanetarySystem”) solarSystem = PlanetarySystem() 其中’PlanetarySystem’是LuaTest中的一个类。 如果我运行这段代码,解释器会说:尝试调用全局’PlanetarySystem’(一个零值)。 我还尝试了另一种加载DLL的方法: package.path = package.path .. “;” .. “/?.dll” require ‘luanet’ require ‘LuaTest’ 运行后,解释器抛出:lua:从文件’。\ LuaTest.dll’加载模块’LuaTest’时出错:找不到指定的过程。 我是.NET框架和LuaInterface的新手。 也许我做了一件完全错误的事情。 请帮帮我。 非常感谢! 编辑:也许我应该在我的dll中有一个Lua的“入口点”来表明这个dll是LUA可加载的??? 编辑:Lua不是LUA。 […]

如何从Lua中的字符串中获取某些文本?

我想提取从HTTP请求中收到的POST参数,该请求已发送到我的NodeMCU。 我怎么能做到这一点? 我在考虑C#中的以下代码。 如何在Lua中实现这一点? 我在C#中的代码: // Response = “Play1lol” // ValuetoSearch = “action” public static string GetInformationFromResponse(string Response, string ValueToSearch, bool RemoveHtmlCharacters = true) { string returnValue = “”; if (RemoveHtmlCharacters) { Response = Response.Replace(“”, ValueToSearch); Response = Response.Replace(“”, ValueToSearch); Response = Response.Replace(“<” + ValueToSearch + “>”, ValueToSearch); Response = Response.Replace(“</” + ValueToSearch + “>”, […]

将C#集合传递回Lua

我有一个用C#编写的DLL,由Lua脚本使用。 脚本“需要CLRPackage”。 到目前为止,我可以使用load_assembly()和import_type()来获取DLL中的类和方法。 我传回简单的值和字符串,这一切都有效。 不,我需要将一个通用集合传递给Lua。 我相信Lua会看到的是一个表,但我不清楚如何在C#中创建该表并将其传回。 这似乎是一个类似的问题,但我没有看到如何实现它。 是否有另一种解决方案或一个带有剥离代码片段的解决方案?

Lua脚本逐行编写

我使用DynamicLua库将Lua脚本添加到我的C#应用​​程序中,它运行良好。 我想实现你获得正在执行的当前行(如在Visual Studio中)并突出显示它。 目前我这样做: public static void RunLua(string LuaToExecute) { dynamic lua = new DynamicLua.DynamicLua(); string[] lua_s_split = LuaToExecute.Split(‘\n’); int counter = 0; foreach (string line in lua_s_split) { // highlight current line in editor HighlightLine(counter + 1); //execute current line lua(line); counter++; } } 这对我的Lua代码很有用 move(20, 19) sleep(1000) move(5, 19) 但我不能只执行一行语句。 就像我的绑定函数move() 。 但我还想使用函数和循环之类的多行语句。 […]

使用Lua和C#最有效的方法是什么?

根据我的理解,Lua是一种可嵌入的脚本语言,可以在对象上执行方法。 要避免哪些陷阱? 使用Lua作为解释器并在Web环境中执行方法或作为规则引擎是否可行?

LuaInterface – 如何限制对.Net类的访问?

我正在尝试使用LuaInterface 2.0.3在我的C#应用​​程序中嵌入一些Lua脚本function。 到目前为止,这工作正常,但我无法弄清楚如何限制只访问少数指定的.Net类。 默认情况下,所有.Net库都可以通过“luanet”直接访问,Lua脚本可以自由打开新窗口或访问文件系统。 例如,这个Lua脚本将打开一个新窗口: Form = luanet.System.Windows.Forms.Form mainForm = Form() mainForm:ShowDialog() 编写脚本的自由度很高,但这可能会干扰托管应用程序,并且具有一些我不太喜欢的与安全相关的含义。 有没有办法禁用它?

在.net4中加载LuaInterface

我有一个我正在研究的C#应用​​程序,我想使用优秀的LuaInterface 。 但是,当我运行应用程序时,当我尝试使用LuaInterface执行某些操作时,我得到此exception: 混合模式程序集是针对运行时的版本“v2.0.50727”构建的,如果没有其他配置信息,则无法在4.0运行时中加载。 我可以提供哪些额外的配置信息来正确加载?

如何在lua脚本中使用json方法并使用c#执行lua脚本?

我正在尝试使用lua使用l #编码和解码json。我正在使用NLUA执行lua脚本。 我正在使用Json.Lua文件进行json manupulation(编码和解码方法),但我没有得到如何使它在c#中使用nlua。 代码: static void Main(string[] args) { Lua state = new Lua(); var jsonConcate = @”[{ “”firstName””:””John”” , “”lastName””:””Doe””, “”email””:””NHP@123.COM”” },{ “”firstName””:””Anna””, “”lastName””:””Smith””, “”email””:””ASD@123.COM”” },{ “”firstName””:””Peter”” , “”lastName””:””Jones””, “”email””:””ZXC@123.COM””}]”; state.DoString(@” function ScriptFunc (input) local json = require(‘json’) local JSON_string = input return JSON_string end” ); var scriptFunc = state[“ScriptFunc”] as LuaFunction; var […]

Lua Wrapper for C#?

我希望将Lua嵌入到我的C#应用​​程序中,我认为有一个关于C#的lua API的包装器,但是不记得它是什么。 有人能指出我的方向吗?

在C#/ .Net中解析Lua数据结构的最简单方法

有人知道在C#或任何.Net库中解析Lua数据结构的简单方法吗? 这与JSON解码类似,除了Lua而不是javascript。 在这一点上看起来我需要自己编写,但希望已经有了一些东西。