2012-04-12 1 views
3

나는 C에서 GetParameter라는 메서드를 가지고 있습니다. 그리고 루아에서 그것을 사용하고 싶습니다. 이 메소드는 루아에 몇 가지 값을 다시 반환합니다.루아에서 C로 전역 테이블을 반환하지 않음

임 C에서 가장 일반적인 방법 테이블입니다 구축하는 방식이 후, 당신은 루아 setGlobal와 결과 테이블을 설정해야, 내가 본 모든 예에서

lua_newtable(L); 
for (int i = 0; i < parameters; i++) 
{ 
    lua_pushnumber(L,i); 
    lua_pushstring(L,myParameter); 
    lua_settable(L,-3); 
} 

을 :

이 방법
//set name for the result 
lua_setglobal(ptLuaState, "resultTable"); 

,이 같은 루아에서 결과 테이블에 액세스 할 수 있습니다

GetParameter("V111","V111Parameter") 
printTable(resultTable); 

일 이 모든 것이 잘되지만, setglobal을 사용하지 않고도이 작업을 수행 할 수있는 또 다른 방법이 있습니까? 나는 다음과 같이하려고 노력했다 :

local mytable=GetParameter("V111","V111Parameter"); 

하지만 작동하지 않는다. 전역 변수를 사용하는 것이 더 낫습니다. setglobal을 만들지 않고 어떻게 결과 테이블을 얻을 수 있습니까?

미리 감사드립니다.

답변

5

C 함수에서 setglobal을 호출하고 1을 반환하지 마십시오. 루아는 함수로부터 반환 값이 1 개 있다는 것을 알았고 마지막 예제가 작동합니다.