본문 바로가기

[ C/ C++ 프로그래밍 ]/[ 루아 ]

[ 루아 ] C++ 연동 - 루아에서 C++ 호출하기

[ 참고 및 출처 ] 
루아를 이용한 민첩하고 효과적인 게임 개발



루아에서 사용자가 정의한  C++ 함수를 호출할려면 lua_register 함수를 이용하면 된다.

 void lua_register ( lua_State *L, const cha* name, lua_CFunction f );
 
name : 루아에서 쓰일 함수의 이름
f : C++에서 정의한 함수 이름

※  루아는 모든 함수 호출에서 각각 함수에 대한 lua state를 사용한다.

함수로 넘어가는 인수가 여럿이어도 C++쪽 함수 정의부에서는 lua_State 값 한 개의 인수만 받아오면 된다.

lua state의 stack에서 값을 꺼내오는 함수들은 lua_tonumber, lua_tointeger, ... 등과 같음 함수들을 이용해서 원하는 개수만큼 인수를 꺼내온다.

그리고 원하는 연산을 끝낸 후에, lua push 함수를 이용해서 값을 lua state의 stack에 넣는다. 마지막으로 반환값으로 결과값의 개수를 반환해주면 모든게 끝이다.







소스 다운 :