Lua 다운로드
1. http://www.lua.org/download.html
2. 최신 버전을 다운 받아서 압축 해제 (lua-5.3.0.tar.gz)
Visual Studio 2013
1. File > New > Project > Visual C++ > General > Empty Project > OK
2. Lua 압축 해제된 파일을 Visual Studio 프로젝트 경로에 복사
3. 프로젝트의 Header Files와 Source Files에 Lua의 .h와 .c파일 포함
※ 단, main 함수 이름이 겹치지 않도록 lua.c와 luah.c 제거
4. Lua 스크립트 작성 후 Visual Studio 프로젝트에 저장 ("test.lua")
#!/usr/bin/lua
function add ( x, y )
return x + y
end
5. 프로젝트에 main.c 생성하고 main 함수 작성
#include <stdlib.h>
#include <stdio.h>
#include "src/lua.h"
#include "src/lualib.h"
#include "src/lauxlib.h"
int main(void)
{
lua_State * L = luaL_newstate();
luaL_openlibs(L);
if (luaL_dofile(L, "./test.lua"))
printf("lua script open failed.\n");
/* function name */
lua_getglobal(L, "add");
/* arguments */
lua_pushnumber(L, 1);
lua_pushnumber(L, 2);
/* call function with 2 arguments and 1 return */
lua_pcall(L, 2, 1, 0);
/* get return value */
int sum = lua_tointeger(L, -1);
lua_pop(L, 1);
printf("sum : %d\n", sum);
lua_close(L);
return 0;
}
6. 실행결과
가상 스택
Lua는 다른 언어와 데이터를 교환하기 위해 가상 스택을 사용한다.
스택 인덱스는 plus index(좌측)와 minus index(우측) 모두 사용 가능하다.
마지막으로 반환된 값은 보통 -1 로 접근하는 것이 편하다.
1. 함수 호출 직전
3 |
2 |
-1 |
2 |
1 |
-2 |
1 |
add |
-3 |
2. 함수 호출 후
1 |
3 |
-1 |
참조
- http://stackoverflow.com/questions/16302942/lua-in-visual-studio-2012
- http://gamedevgeek.com/tutorials/calling-lua-functions/
'Lua' 카테고리의 다른 글
Lua 스크립트의 함수를 C에서 간편하게 실행하기 (0) | 2015.03.30 |
---|