나는 이것을 풀려고 지난 6 시간을 보냈습니다! 그리고 난 어디서든 얻을 coulnt :의C++에서 .Lua 스크립트로 루아 표를 전달합니다.
나는 ++은 C에서 파일을 루아 테이블을 생성 할 수 후 다음 루아 기능이있는 루아 스크립트 파일에 저를 전달하려는:
function MTable (t)
local n=#t
for i=1,n do
print(t[i])
end
end
를 내가 동적으로 2 개의 문자열이있는 1 차원 배열을 만들었습니다.
lua_newtable(L);
lua_pushstring(L,"10.10.1.1");
lua_pushstring(L,"10.10.1.2");
lua_rawseti(L,-3,2);
lua_rawseti(L,-2,1);
이제 스택 맨 위에 테이블이 있습니다. 나는 이것을 다음과 같이 작성하여 확인했습니다 : if (lua_istable (L, lua_gettop (L)))`이 1을 반환했습니다. 이는 테이블임을 의미합니다.
는 내가 이런 짓을 : 이 스크립트를 실행하지 못했습니다 : 그래서 그 오류가있어
lua_getglobal(L, "MTable"); // push the lua function onto the stack uint32_t result = lua_pcall(L, 1, 0, 0); //argument 1 is for the table if (result) { printf(stderr, "Failed to run script: %s\n", lua_tostring(L, -1)); exit(1); }
가 친절하게 파일이 여러 가지 다른 기능을 가지고 있습니다 테이블 값을 호출하는 시도를하는 나는 C++에서 성공적으로 호출하고있다.
누가이 오류를 해결할 수 있도록 도와주세요. 이게 LUA의 버그 일 수 있습니까? Cz 나는 아주 정확하게 단계를 따라 갔다. .. 나는 추측한다!
이것은 Lua 메일 링리스트에서 물어 보았습니다. – lhf