问题标签 [lua-5.2]

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

file-io - 我如何读取和写入另一个目录中的文件?

我正在尝试制作一个将数据写入文件的程序,以便另一个程序能够从中读取数据。问题是当我正在读取和写入的文件位于我的两个程序之外的另一个目录中时,我无法找到一种方法来执行此操作。我知道还有其他方法可以做到这一点,但我只是认为知道如何做到这一点会很有用。任何人都可以帮助我吗?

0 投票
2 回答
1415 浏览

c++ - 无法让 Lua 函数引用“自我”

我正在尝试使用可以打印出一些成员值的成员函数创建一个简单的类,但是当我尝试引用“self”时出现错误:

这是我要运行的脚本:

我也尝试过self:Name,但我得到了类似的错误。我在这里做错了什么?

编辑:

忘了提我printName()从 C++ 代码中调用函数。如果我从 Lua 调用该函数,它可以正常工作。

在 Lua 中创建 Test 对象并完成回调函数。回调在 C++ 中调用如下:

脚本中的回调是这样完成的:

如果我不尝试引用,回调本身就可以正常工作self。只有当我尝试这样做时才会出现错误。

0 投票
2 回答
7772 浏览

arrays - 从列表(表)末尾获取第 n 个元素

如果我有一个列表(表格):

如何从最后获得第n个项目?(例如,最后一个或倒数第二个)

0 投票
0 回答
276 浏览

c - 编译链接器文件以在 Lua 5.2.1 中嵌入 C 代码

如何在 Visual Studio 2010 中为链接器编译文件。

这些是我在 Visual Studio 2010 中使用 Lua 5.2.1 源代码所遵循的步骤:

  1. cl /MD /O2 /c /DLUA_BUILD_AS_DLL *.c
  2. 用扩展名“.o”重命名“lua.obj”和“luac.obj”,这样它们就不会被选中
  3. 链接 /DLL /IMPLIB:lua5.2.lib /OUT:lua5.2.dll *.obj
  4. 链接 /OUT:lua.exe lua.o lua5.2.lib
  5. lib /OUT:lua5.2-static.lib *.obj
  6. 链接 /OUT:luac.exe luac.o lua5.2-static.lib

从上述所有步骤中,我选择了 lua5.2.lib 并将其添加到链接器中,如下所示:

在此处输入图像描述

当我使用 Dev-C++ 编译以下 C 代码时,它没有给出任何错误,但是当我使用 require 命令从 Lua 调用它时,它说它找不到它。

当我运行这个简单的 Lua 代码时:

错误写道

有什么帮助吗?

0 投票
1 回答
864 浏览

c# - 从 Lua 5.1 移植到 5.2

我在将一些较旧的 Lua 5.1 代码移植到 Lua 5.2 时遇到了一些问题。我希望能够使用现有的 Lua 5.2 dll/lib,因此任何移植都需要使用现有的 Lua 5.2 API 完成。为了让它更复杂一点,我使用DllImportP/Invoke 一些 Lua API 调用。这意味着#define提供的任何快捷方式都不起作用。例如使用lua_pushglobaltable将是不可能的。大多数更新都是必需的,因为LUA_REGISTRYINDEX不再可访问。

到目前为止,我有以下内容:


1a) 更换

1b) 有


2a) 更换

2b) 有


3a) 更换

3b) 有


4a) 更换

4b) 有


5a) 更换

5b) 有


6a) 更换

6b) 有


7a) 更换

7b) 有


8a) 更换

8b) 有


9a) 更换

9b) 有

现在一切都编译了,但是我得到了内存访问冲突异常,这意味着我可能错误地替换了一些东西。任何帮助,将不胜感激。

0 投票
0 回答
128 浏览

sockets - Lua Copas:发送方协程只是停止工作

我在 Lua 5.2 中使用最新的 Copas 时遇到问题。我编写了一个简单的脚本(见下文),它创建了两个服务器套接字:“RX”和“TX”。“RX”侦听来自连接客户端的消息,“TX”将这些消息传输到连接到“TX”的客户端。

问题是:一开始,服务器启动后,一切正常。但是在一定数量的消息之后,“TX”服务器循环不再执行,不再传输消息。没有错误信息,什么都没有。它只是停止工作。

我用 Copas 错了吗?问题是什么?

这是(简化的)代码:

0 投票
1 回答
229 浏览

lua - Lua 5.2 元表和环境

我有这样的结构:

这个想法是用户在 UI 中输入代码,然后将代码粘贴到update不同模块的功能中,就在 wherelocal _ENV设置之后。这个用户输入的代码应该是沙盒的。它应该能够访问一些功能(context表中的功能)和其他模块的内容。代码 inm1:update应该能够在m1.variables不限定变量的情况下引用变量;其他模块中的变量(即 中的变量m2.variables)应该可以通过使用模块名称(即m2.x)限定它们来访问。

但我得到的结果是这样的:

为什么modules.m2.variables.x不更新了?如果看起来modules.m2.x与 不同modules.m2.variables.x,那么modules.m2.x来自哪里?

0 投票
1 回答
103 浏览

lua - 执行lua文件前读取数据

我想在执行之前读取 Lua 文件中的表。有没有办法做到这一点loadfile。它只返回一个函数,我似乎无法读取里面的内容(声明但未执行的内容)。

我尝试的另一个选项是检查环境是否发生了变化,但我还是无法在loadfile().

有没有办法在不以文本形式打开文件并搜索表格的情况下做到这一点?

这是我尝试检索的表的示例:

0 投票
1 回答
1921 浏览

c++ - 如何在用户数据中存储值类型?

这篇 SO 文章是同一件事,但答案没有帮助,因为答案是在 Lua 中,而问题是关于 C-API。所以我又问了。希望其他人将从这个问题中受益。

我实际上有 2 个问题(我无法让 y 和 z 工作,也无法让 helloworld() 工作)

我试图做到这一点:

用户数据在哪里x。我不断得到attempt to index a userdata value

我知道“用户数据没有元表是不可索引的,因为它是 C/C++ 数据

在我的 C 代码中,我做了这样的事情来尝试包装对象。

早些时候,我尝试注册一个名为 的元表Something,如下所示:

哪里some_funcs有:

如果我尝试print(x.helloworld()),我会得到同样的错误:attempt to index a userdata value

在我的任何代码中,我都不知道如何正确附加值类型yz.

0 投票
0 回答
147 浏览

lua - luaedit 3..0.10 不会显示简单脚本的输出

我试图从我在 luaedit 3.0.10 中的第一个脚本中获取输出并且没有取得太大的成功。我正在使用http://lua.gts-stolberg.de/en/Mathe.php的在线教程中的示例脚本 :

我在 windows vista 下运行 luaedit,并解压了 lua 二进制文件,但找不到将 luaedit 链接到它们的方法,因此假设 luaedit 包含一个 lua 运行时作为其自身的一部分。

这些论坛中已经发布了一个类似的问题,但答案不适用于我的 luaedit 版本。答案是指“显示输出”窗口中的一个窗格,该窗格未出现在我的 luaedit 版本中。我的版本只有一个“输出”窗口,可以从“调试”下拉菜单中访问。虽然它确实说显示输出,但似乎没有任何方法可以改变它显示输出的位置。答案还提到了一个开始调试的绿色按钮,这在我的编辑器版本中也没有。相反,工具栏左侧有三个按钮:一个三角形的“开始调试”按钮、一个双横线的“立即中断”按钮和一个方形的“停止调试”按钮,它们都是蓝色的。

那么......这个编辑器的这个版本要如何解决问题?还是开发人员引入的一个错误,因为他们必须修复一个没有损坏的界面?