如何在 .lua 脚本文件中修改函数参数

我有一个如下的 .lua 文件:

timeout = 3000
index = 15
function Test()
    A(index, timeout)
    B()
end
Test()

A 和 B 函数是用 c++ 实现的。它会在 c++ 中使用 'luaL_dofile(L, "test.lua");' 执行。但超时和索引会在不同的时候更改。问题是如何实时修改参数?

我将写两个 c++ 程序。第一个程序将 .lua 字符串发送到第二个程序。第二个 c++ 程序实现了 A 和 B 并将 dofile lua 脚本。但超时和索引将经常变化。怎么做?我的解决方案是解析索引和超时字符串,然后写入当前值到第一个 c++ 程序的文件中。有更好的解决方案吗?

点赞
用户2858170
用户2858170

将 lua 脚本重复修改以使用不同的参数去调用 A 函数的做法不够好,您应该将所有参数列在一个脚本中。

local listOfIndices = {1,5,23,124,25,}
local timeout = 3000
for _,index in ipairs(listOfIndices) do
  A(index, timeout)
  B()
end

否则,拥有 10000 个不同的索引将导致 10000 次文件读写操作。

如果您正在使用 Windows,您可能需要阅读以下内容 https://learn.microsoft.com/de-de/windows/win32/ipc/interprocess-communications?redirectedfrom=MSDN

我可以想到更好的方式让两个应用程序通信,而不是通过文件发送 Lua 脚本。此外,我不确定为什么需要两个应用程序,为什么不将应用程序 2 的功能添加到应用程序 1 作为库呢?

2021-03-08 09:24:35