gpt4 book ai didi

c++ - Lua 5.1 中缺少 luaL_len

转载 作者:太空宇宙 更新时间:2023-11-04 12:45:12 27 4
gpt4 key购买 nike

我为我的 Lua 项目编写 C++ dll。 Stackoverflow 程序员 Josh Parnell 非常友好地帮助了我。他给了我一个代码,里面有 luaL_len()
但是我使用了一个实现了 Lua 5.1.5 的程序。此版本中缺少 luaL_len()
这是一个代码:

static int forLua_SumArray (lua_State* L) {
// Get the length of the table (same as # operator in Lua)
int n = luaL_len(L, 1);
double sum = 0.0;

// For each index from 1 to n, get the table
// value as a number and add to sum
for (int i = 1; i <= n; ++i) {
lua_rawgeti(L, 1, i);
sum += lua_tonumber(L, -1);
lua_pop(L, 1);
}

lua_pushnumber(L, sum);
return 1;
}

请帮我做一件或两件事情

  1. 使用一些东西而不是 luaL_len 来获取从 Lua 到 dll 的表的大小
  2. 让 luaL_len 在我的 Lua 5.1.5 中工作

最佳答案

最接近luaL_len的Lua 5.1 C API函数是lua_objlen .此功能应该适用于您的情况。

无论如何,Compat5.3 project为较旧的 Lua 版本(5.1 和 5.2)实现了许多较新的 C API 函数,并且它包括用于 Lua 5.1 的 luaL_len 的实现。您可以使用或窃取该代码。

关于c++ - Lua 5.1 中缺少 luaL_len,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52011781/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com