问题标签 [nlua]

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 回答
2562 浏览

c# - 如何使用 c# 将表传递给 lua

如何使用 c# 将表传递给 lua

我正在使用 Lua 接口,这是我的 c# 代码

这是lua代码:</p>

但是我得到了结果,tmptable 是函数类型而不是表类型。像这样:

那么如何将表格传递给lua?

0 投票
1 回答
516 浏览

c# - 从 NLua 调用通用 C# 方法的语法

我在找出使用 NLua 从 Lua 调用通用 C# 函数的正确语法时遇到了一些麻烦。

我正在尝试从 Lua 调用以下 C# XNA 函数

但是我在通用<T>部分遇到了一些语法问题。我当前的 lua 调用看起来像这样,这显然是不正确的,因为我得到了 LuaScriptException。

0 投票
2 回答
2604 浏览

c# - 带有 NLua 的 C# 类的实例

我正在尝试在 lua 文件中创建 C# 类的实例NLua

这是我的代码。

但这似乎不起作用,我环顾四周并尝试了许多不同的方法。我尝试过的大多数方法的错误是:

NLua.dll 中发生了“NLua.Exceptions.LuaScriptException”类型的未处理异常附加信息:[string“chunk”]:3:尝试调用全局“Test”(一个 nil 值)

这有点奇怪,因为这直接来自他们的示例代码? https://github.com/NLua/NLua

谢谢你们的帮助。

一点咆哮:

如果我做错了什么,请告诉我。附带说明一下,我使用的是纯 C# 构建,不确定这是否有所不同,我没有看到任何警告?但整个事情似乎广泛无证......

如果有人对更好的纯 C# Lua 库有任何建议,我会全力以赴。

0 投票
1 回答
395 浏览

c# - 在 NLua 中迭代 JArray

我试图JArray在 NLua 中迭代 a ,但不能以某种方式。JArray 被视为用户数据(什么是用户数据?),因此无法迭代。

将 转换JArrayJValue[]with ac# 方法也不起作用。

据我所知,有两种可能的解决方案。1. 为 nlua 获得一个可工作的 Iterable 函数。2. 将 JArray 转换为 Lua 表,然后在其上使用 for 循环。

这两个我都没有成功。有没有人有更多这方面的经验?先感谢您。

我尝试过的事情:

regCommands 是一个 JArray,在 JTokens 中包含很多 JObject

这给出了 ipairs(jArray) 上的错误,即 jArray 是用户数据。

是 ac# 函数,它接受一个 JArray 并吐出一个 JToken[]

我尝试过的其他东西:

regCommands[keyVal.Name:lower()] = keyVal.first 这在没有任何逻辑原因的情况下崩溃 。

即使获取 ac# 枚举器也不起作用

0 投票
0 回答
273 浏览

c# - NLua 和泛型方法

我正在尝试在 NLua 中使用 DoFile() 运行以下 lua 代码:

执行此操作时出现以下异常:{不能对 ContainsGenericParameters 为真的类型或方法执行后期绑定操作。}

可以正常工作的等效.net代码是:

请帮助摆脱这个异常。

此外,我还想知道“有没有办法使用 lua 加载 dll,而我的 .net 应用程序中还没有加载?”

0 投票
1 回答
453 浏览

linq - Cannot call .Count() IEnumerable extensions from lua script using nula

So I have a little lua script where I want to call an extension method on IEnumerable collection.

So GetAudioMarkers() is a C# method returning an IEnumerable of AudioMarker objects. Doing a luanet.each will work fine and I will be able to iterate to every element of the collection. But I need the count of that collection and calling .Count() does the following error: NLua.Exceptions.LuaScriptException: [string "chunk"]:54: attempt to call field 'Count' (a string value).

By the way, I know that with nlua you don't need to pre-register your types to used them so I try with and without the last import about AudioMarker, but got the same result.

I'm probably doing something wrong but I cannot seem to find any documentation on the web that could help regarding this issue.

0 投票
0 回答
266 浏览

c# - how to deploy both x86 and x64 MSVCR120 to local application folder for C# project?

My ultimate purpose is to deploy my .NET application with clickonce and copy those runtime dlls (MSVCR, MSVCP) to my local application folder. This is needed for NLua integration into my .NET app.

That way the user doesn't need to install using Microsoft redistributable package, they do not have admin right to install that.

The possible method that I can think of now is to have both x86 and x64 dlls deployed somewhere with separate folders and during application launch, detect the user platform and copy the right dlls to actual app/bin folder. Will like to avoid doing this if some known method will work on this case.

appreciate any help given.

0 投票
1 回答
474 浏览

c# - C# NLua:访问泛型参数

我有一个使用通用参数的实体组件系统。我正在尝试让 Lua 脚本使用 NLua 工作。

但是我不知道如何从 Lua 环境中访问通用参数。

像这样的东西?:

如果没有办法做到这一点,那么我将如何使组件可以通过字符串访问?

将根据要求提供代码片段,因为我认为我的代码没有问题。

0 投票
1 回答
680 浏览

c# - NLua 处理 C# 异常

我正在寻找 NLua 来编写现有 C# 应用程序的脚本,其中从 lua 调用的 C# 函数可能会引发异常。

到目前为止,我发现了这个:

  • 如果 lua 代码在调用的 C# 函数中没有处理异常,NLua 会包装并重新抛出它,以便在 C# 级别处理它。

  • 如果 lua 代码确实通过 xpcall “捕获”异常,我发现无法访问异常的详细信息(例如 -.Message)

前者允许我得到一个 debug.traceback(),一个 lua 级的堆栈转储,但我没有得到异常的详细信息。后者提供了例外,但无法获得 Lua 堆栈转储(我在 .Source 中获得 lua 文件和行,但这还不够)。

问题是:

  • 我可以在 NLua“xpcall”错误处理程序中获取 C# 异常的详细信息吗(?至少是 .Message 字段,更好的是实际异常类型。

  • 或者,我可以在 NLua 中处理 C# 异常(目的是创建 lua stackdump)并重新抛出它吗?

  • 或者当 egluaState.DoFile("myScript.lua") 导致异常时,我可以从“lua state”以某种方式获取 lua stackdump 吗?

任何帮助,将不胜感激。如果我能理清异常处理,NLua 似乎对我的想法近乎完美。

0 投票
1 回答
675 浏览

building - 从源代码构建 NLua (Windows):Lua52.dll?

我正在努力在 Windows 上从源代码构建 NLua。它需要修改过的 Lua 版本,否则我的代码会因缺少“lua52.dll”而失败。 https://github.com/NLua/NLua/issues/53

我试图从这里获取它 https://github.com/NLua/lua 然后使用“cmake”。并在视觉工作室中构建了生成的“lua.sln”。

发生的事情是我得到一个“lua52d.dll”(注意“d”)。如果我重命名它,“KeraLua”会抛出“System.BadImageFormatException”(当我尝试使用在 NLua 的“tests”文件夹中找到的一些“NLua.exe”可执行文件时)。

谁能告诉我如何构建 NLua 所需的修改后的 lua52.dll?我已经有一个可以工作的二进制文件,但需要能够自己重建所有内容。可能我只是使用了错误的源代码树。