Я пишу C ++ DLL для моего проекта Lua.Программист Stackoverflow Джош Парнелл был очень любезен, чтобы помочь мне.Он дал мне код с 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;
}
Пожалуйста, помогите мне сделать одно или оба из этих вещей
- Используйте что-то вместоluaL_len, чтобы получить размер таблицы, приходящей из Lua в dll
- Чтобы luaL_len работал в моем Lua 5.1.5