비주얼노벨 강좌

여기에 있는 루아의 강좌중 가장 필요한게 없는거 같아서 올려봅니다.

 

루아의 문법을 아무리 잘 알고 있다고 하더라도 정작 C++에 연동시키는 법을 모르면

 

아무 쓸모가 없겠죠??

 

일단 제가 루아 홈페이지에 가서 루아 스크립트를 다운받았는데..  소스통째로 던져주네요 -_-;;

 

루아 원본 소스를 받으시고 싶으신분들은 http://www.lua.org 를 참조해주세요!

 

그나저나 이렇게 소스를 통째로 주면 사용하기가 약간 귀찮습니다.

 

 그래서 제가 정리해서!!!  라이브러리로 만들었습니다.

 

루아스크립트 버젼은 5.1.4버젼입니다.

 

클릭해주세요 Rua.zip  <---

 

다운받아서 C드라이브에 압축을 풀어주세요.

 

강좌도 C드라이브에 압축을 풀었다는 가정하고 진행하겠습니다.

 

일단 이것을 비쥬얼 C++에서 사용 할수 있게 하려면!!

 

("저는 비쥬얼 스튜디오 2008을 기반으로 설명을 하겠습니다.")

 

 

1. 비쥬얼 스튜디오 헤더파일과 LIB파일을 지정해주기!!

도구 -> 옵션을 눌러주세요!!

 

1.JPG

 

 

 

 

프로젝트 및 솔루션 ->  VC++  디렉터리를 클릭하시면 다음파일의 디렉터리 표시라는 메뉴가 보이지요!? 여기서

 

포함파일을 선택한후 제가 올려놓은 루아 라이브러리의 include 폴더의 경로를 여기에 적어주세요!~!!

 

2.JPG

 

그 다음  "다음 파일의 디렉터리 표시" 메뉴에서 라이브러리 파일을 선택하시고 제가 올려놓은 루아 라이브러리의 lib폴더의 경로를

 

지정해주세요!!

 

3.JPG

 

 

일단 이렇게 되면 컴파일러 자체의 설정은 끝났습니다만..

 

우리가 프로그램을 만들때 프로젝트 단위로 만듭니다.  새로운 프로젝트를 생성할때마다  루아 라이브러리 파일을

 

사용하겠다고 알려주어야 합니다!!

 

제가 만든 프로젝트 이름이 STL_Guid라고 되어 있는데 신경쓰지마세요 -ㅅ-

(STL공부하던중에 한거라 후후후-)

 

어쨋든 프로젝트 -> 속성을 클릭하세요 단축키로 ALT +F7을 누르셔도 상관 없습니다.

 

4.JPG

 

 

다음과 같은 창이 나오는데요 여기서    구성속성  ->   링커   ->  입력  -> 추가종속성에  Rua.lib 라고 적어주시면

 

루아스크립트를 사용하기 위한 준비는 끝났습니다. 이제는 rua코드를 작성하기만 하시면 됩니다!!

5.JPG

 

 

 

 

샘플

 

 

#include <stdio.h>

#include <string.h>

 extern "C"

{

#include "lua.h"

#include "lauxlib.h"

#include "lualib.h"

}

 

 

int main(void)

{

           char buff[256];

           int error;

           lua_State *L = luaL_newstate();  //루아를연다.

           luaL_openlibs(L);   //루아표준라이브러리를연다.

 

           while(fgets(buff, sizeof(buff), stdin) != NULL)

           {

                     error =luaL_loadbuffer(L, buff, strlen(buff), "line") ||

                                lua_pcall(L, 0, 0, 0);          

                     if(error)

                     {

                                fprintf(stderr, "%s", lua_tostring(L, -1));

                                lua_pop(L, 1);      //스택으로부터오류메시지를뽑아낸다.

                     }

           }

           lua_close(L);

           return 0;

}

 

 

저는 소스를 이렇게 작성하고 컴파일 (F7키) 누르고 실행해보았습니다.   실행단축키 Ctrl + F5

 

자아 밑에 엠피님이 사용했던 문법을 그대로 타이핑 해보았지요

  7.JPG

 

a = print

a("루아는 마법사이다")

라고 치니

 

루아는 마법사입니다 라는 글이 콘솔창으로 나오는것을 확인 할수 있습니다.

 

여담으로 함수도 변수로 관리한다고 느낄수 있지만.. 사실은 이 함수의 포인터로 관리한다는 것입니다.

 

사실 이것을 C언어로도 표현할수도 있습니다.

 

#include <stdio.h>

 

int main()

{

           puts("나는마법사이다") ;

 

           int (*a) (const char*) = puts ;

 

           a("나는마법사이다.");

 

 

           return 0;

}

 

다음 스샷과 같이 제대로 나오는 것을 알수 있습니다.

8.JPG

 

하지만 루아 스크립트언어와는 달리 명시적으로 함수의 리턴인자의 타입과 매개변수의 타입및 갯수를 정확히 일치 시켜줘야 합니다.

 

 

 

루비언어의

 

a = print

 

함수 포인터의 선언과 정의방법

 

 

 

 

C/C++의

 

int (*a) (const char*) = puts ;

 

함수 포인터선언 방법

 

어떤게 더 간결하고 편해보이는지는 대충봐도 느낌을 올껏입니다.

이래서 스크립트언어가 편하다는 말을 많이 하는건가 봅니다!

 

 

 

 

TAG •
Atachment
첨부 '8'

List of Articles
분류 제목 글쓴이 날짜 조회 수
Ren'Py 렌파이 관련 유용한 링크 모음 3 file 습작 2012.12.02 17571
Nekonovel 네코노벨 관련 유용한 링크 모음 1 file 습작 2012.11.19 11945
피니엔진 FAL.노드이름에 관해서 알아보자. file 하늘바라KSND 2015.08.17 623
Vasilriot 바실리어트 메뉴얼(2) 하늘바라KSND 2014.12.20 693
Vasilriot 바실리어트 메뉴얼(3) 하늘바라KSND 2014.12.20 850
VNAP char로 캐릭터 출력 2 FNS키리토 2015.06.01 886
Neko:기타 쓰레드에 '대기' 명령어를 넣었을 때 나타날 수 있는 현상 file 하늘바라KSND 2014.11.27 1016
피니엔진 타이틀+클릭메뉴 예제 file 하늘바라KSND 2015.07.11 1092
피니엔진 애니메이션-스프라이트 간단한 팁 몇가지 하늘바라KSND 2015.07.11 1279
Vasilriot 바실리어트 메뉴얼(1) 하늘바라KSND 2014.12.20 1406
Visual Novel Maker 한글 텍스트 입력 file 러닝은빛 2017.11.21 1428
피니엔진 안드로이드로 배포판을 만들기 위해 필요한 것들 하늘바라KSND 2014.12.20 1514
피니엔진 텍스트, 대화, 독백 명령어 하늘바라KSND 2014.12.21 1554
피니엔진 피니엔진 타이틀 만들기 예제(구버전) 1 file 하늘바라KSND 2015.01.27 1754
피니엔진 기본 틀 만들기 : 타이틀화면 file 하늘바라KSND 2017.11.15 1803
VNAP 선택지 발생 3 file FNS키리토 2015.01.11 2001
TyranoBuilder TyranoBuilder Visual Novel Studio Pro버전 한글패치 6 file 습작 2016.05.28 2179
Vasilriot 바실리어트에서 지원하는 vr팩. 언팩이 가능할까? 하늘바라KSND 2013.05.11 2646
Vasilriot 장면 전환할 때 사용할 '장막효과'를 구현해보자. 하늘바라KSND 2013.05.09 2701
Vasilriot 바실리어트 사용할 때 조심해야 할 것 :: 글자수 제한(명령어 오류)(2013.05.15수정) file 하늘바라KSND 2013.05.09 2750
Vasilriot 노가다를 줄여주는 명령어, 인라인 사용하기. 2 하늘바라KSND 2013.02.18 2944
Vasilriot 바실리어트 기본 설정하기 - 폰트 :: font.ini file 하늘바라KSND 2013.05.11 3016
Board Pagination Prev 1 2 3 Next
/ 3