Lua

Lua 스크립트 Visual Studio 개발 환경 구성

behonestar 2015. 3. 30. 14:04

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



참조

  1. http://stackoverflow.com/questions/16302942/lua-in-visual-studio-2012
  2. http://gamedevgeek.com/tutorials/calling-lua-functions/


'Lua' 카테고리의 다른 글

Lua 스크립트의 함수를 C에서 간편하게 실행하기  (0) 2015.03.30