问题标签 [lua]

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 投票
8 回答
893 浏览

scripting - 根据定义,脚本是“开源”的吗?

前几天,我为一个朋友的魔兽世界插件调整了一个脚本。他对您可以编辑插件感到惊讶——它们是“开源的”。(《魔兽世界》插件是用 Lua 脚本语言编写的)我发现自己想说“当然可以——所有脚本都是‘开源’的。”

真的吗?当然,有些脚本可以编译成字节码,但不是几乎所有的脚本都被解释了吗?也就是说,根据定义,解释脚本的设备不需要“源”吗?

0 投票
2 回答
11545 浏览

c++ - 如何在 C++ 中创建 Lua 表,并将其传递给 Lua 函数?

在 C++ 中,我有一个map<string, string>, 包含未知数量的条目。如何将它传递给 Lua 函数,以便 Lua 函数可以将数据用作表?

0 投票
3 回答
4833 浏览

random - 为什么在 lua 的某些平台上第一个随机数总是相同的?

考虑以下 lua 代码片段:

在 Linux 机器上,结果如预期的那样是随机数。但似乎至少在 Mac OS X 上,改变种子后的第一个随机数总是一样的!

我想这与 Lua 依赖 C rand() 函数生成随机数有关,但有人解释一下吗?

编辑:这是Linux机器上上述代码输出的摘录(即输出如预期):

在 OS X 机器上,“Seeding with ...”之后的第一个数字始终是 66。

0 投票
2 回答
3401 浏览

syntax - Lua - if 语句中的语法错误

只是试图执行一个小的 Lua 脚本,但不幸的是我做错了。我没有更多的想法可能是什么错误。

口译员说:

我认为这不是一件大事,也许很清楚出了什么问题。但不知何故,我现在看不到它。

0 投票
12 回答
144622 浏览

time - Lua - 当前时间(以毫秒为单位)

有没有一种常用的方法可以以毫秒或毫秒为单位获取当前时间?

os.time(),但它只提供完整的秒数。

0 投票
1 回答
1318 浏览

lua - KDevelop 中的 Lua 语法高亮显示

有谁知道如何修复 Kdevelop 中的 Lua 语法突出显示。用于获取表长度的# 符号导致该行的其余部分看起来好像被注释掉了。

t[ #t+1] = "富"

0 投票
2 回答
4538 浏览

file - 如何在Lua中只读取文本文件的最后一行?

我有一个程序可以生成最大为 20 米的文本字段。有时我只关心文件中的最后一行,有没有办法只读取该行而不浪费内存读取文件的其余部分?

0 投票
7 回答
3840 浏览

ruby-on-rails - Lua on Rails?

有没有像 Rails for Lua 这样的库?

0 投票
4 回答
9883 浏览

function - 使用 Lua 访问函数的主体

我将回到这里的基础知识,但在 Lua 中,您可以像这样定义一个表:

打印表引用本身会带回一个指向它的指针。要访问它的元素,您需要指定一个索引(即,就像您使用数组一样)

现在函数是一个不同的故事。您可以像这样定义和打印函数:

有没有办法访问已定义函数的主体。我正在尝试组合一个小型代码可视化器,并希望使用特殊函数/变量“播种”给定函数,以允许可视化器将自身“挂钩”到代码中,我需要能够重新定义该函数变量或字符串。

0 投票
5 回答
2670 浏览

visual-c++ - 编译过程

谁能解释编译是如何工作的?

我似乎无法弄清楚编译是如何工作的..

更具体地说,这是一个示例。我正在尝试在 MSVC++ 6 中编写一些代码来加载 Lua 状态。

我已经:

  • 设置库的附加目录并将文件包含到正确的目录
  • 使用了 extern "C" (因为 Lua 只是 C 或者我听说的)
  • 包含正确的头文件

但是我仍然在 MSVC++6 中遇到一些关于未解析外部符号的错误(对于我使用的 Lua 函数)。

尽管我很想知道如何解决这个问题并继续前进,但我认为如果我了解所涉及的底层过程对我来说会更好,那么任何人都可以为此写一个很好的解释吗?我想知道的是过程..它可能看起来像这样:

第1步:

  • 输入:源代码
  • 过程:解析(也许在这里添加更多细节)
  • 输出:这里输出什么..

第2步:

  • 输入:步骤 1 输出的任何内容,以及可能需要的任何其他内容(库?DLL?.so?.lib?)
  • 过程:对输入所做的任何事情
  • 输出:输出什么

等等..

谢谢..

也许这将解释什么是符号,究竟是什么“链接”,什么是“对象”代码或其他什么......

谢谢。。对不起,我是个菜鸟。。

PS这不一定是特定语言的..但是请随意用您最熟悉的语言表达它.. :)

编辑:所以无论如何,我能够解决错误,事实证明我必须手动将 .lib 文件添加到项目中;简单地在 IDE 设置或项目设置中指定库目录(.lib 所在的位置)不起作用..

但是,下面的答案在一定程度上帮助我更好地理解了这个过程。非常感谢!.. 如果有人还想写一个详尽的指南,请做.. :)

编辑:仅供参考,我发现一位作者(Mike Diehl)的两篇文章很好地解释了这一点.. :) 检查编译过程:第 1 部分 检查编译过程:第 2 部分