루아 스크립트만 만들어지는 프로젝트는 극히 드물다.
일반적으로 C/C++로 주요 기능이 구현되어 있는 바탕 위에 루아가 내장되어, 아래 단에서 C/C++로 구현된 핵심 기능을 이용하여 루아로 빠르게 시나리오를 수정하거
새로운 시나리오를 만들어 내는 데 주로 사용된다.
혹은, 스크립트만 구현한 기능의 성능이 예상보다 느려서 취약한 부분을 대체하기 위하여 C/C++과 연동할 수 있고, 루아에서는 제공되지 않거나 구현 가능해도 너무
복잡한 부분을 C/C++에서 보다 쉽게 구현하여 결과를 루아 쪽으로 넘길 수도 있다.
그럼 일단 C++과 루아가 교시을 하려면 우선 변수들을 주고 받을 수 있어야 하는데 이를 담당하는 것이 lua state(루아상태)라는 구조체이다.
이 lua stat를 이용하여 C++로 작성된 함수를 루아에서 호출할 수 있으며, 그 반대로 C++에서도 루아 함수를 실행할 수 있다.
ㅇ C++에서 루아 호출하기
C++에서 루아로 접근 할 수 있도록 해주는 함수를 루아 API라고 부른다.
C++를 루아를 호출 할 수 있도록 세팅을 해보자
C++에서 루아를 호출할떄 VC버젼에 맞제 다운 받아서 세팅해주는것이 가장 중요하다. 그냥 다운 받았다가 3~4 시간 삽질했다 ㅠ
여기로 바로 들어가도 되고 http://luabinaries.sourceforge.net/ 아니면 http://www.lua.org/ 에 들어가서 download ->Binaries 로 들어가도 된다.
밑으로 내려가보면 History 가 있을 것이다. 그리고 이제 밑에 그림을 보고 차례 대로 하면 된다.
간단하게 설명을 하면 Win32, Win64 는 윈도우 버젼이다. 자신이 예를 들면 자신 그냥 XP 버젼이라면 Win32 버젼을 선택하면되고 만약 64비틑 버젼이라면 Win64를 다운 받으면 된다.
그리고 gcc, cygw , vc 이렇게 이름이 붙는데 이건 컴파일러 이름이다. 나는 비주얼 C++ 을 사용하기 떄문에 VC 버젼을 다운 받으면 된다.
그 뒤에 나오는 것은 버젼이다. vc8 vc9 vc10 나오는데 vc8은 ==>2005, v9 ==> 2008, v10 ==> 2010 이다.
그래서 종합해보면 예를 들어 내가 WIn Xp 32비트 버젼이고 비주얼 C++ 2008을 사용한다면
lua5_1_4_Win32_vc9_lib.zip 를 다운 받으면 된다는 것이다.
아마 WIndow7 32버젼도 똑같이 Win32로 다운 받으면 될것이다.
이제 다운을 다 받았다면 이제 VC에서 세팅을 해주어야 될것이다.
일단 전제로 컴퓨터에 C:\lua5 에 루아가 깔려 있다는 전제로 설명한다.
다운 받은 파일을 압축을 풀면 다음과 같이 나올 것이다.
include 폴더 내용물은 C:\lua5 \include (inlcude 폴더를 만들어서)복사 했고
C:\lua5\lib 폴더를 하나 만들어서 lua5.1.lib 파일을 복사 했다.
그런 다음에 VC에서 프로젝트로 가서 win32콘솔응용프로그램을 Test버젼으로 하나 만든다 그리고
메뉴에서 도구 -> 옵션 ->프로젝트 및 솔루션 -> VC++ 디렉터리 가서 밑의 그림 처럼 포함 파일과 라이브러리 파일을 추가해 준다.
자 이제 마지막 하나만 남았다 프로젝트 안에서 lua5.1.lib 파일을 로드 해주오야 하는데 방법은 두가지가 있다.
하나는 소스에 #pragma comment(lib, "lua5.1.lib") 를 추가 해주는 방법과 아니면 밑의 그림 처럼 메뉴에서 프로젝트 -> 속성에 들어가서
다음과 같이 추가 해주는 방법이 있다. 자신이 편한방법으로 해주면 되겠다.
그럼 간단한 하게 프로그램을 하나 만들어보자
소스 다운
실행 시켜 보자
ps 참고 및 출저 : 예제로 배우는 프그래밍 루아
일반적으로 C/C++로 주요 기능이 구현되어 있는 바탕 위에 루아가 내장되어, 아래 단에서 C/C++로 구현된 핵심 기능을 이용하여 루아로 빠르게 시나리오를 수정하거
새로운 시나리오를 만들어 내는 데 주로 사용된다.
혹은, 스크립트만 구현한 기능의 성능이 예상보다 느려서 취약한 부분을 대체하기 위하여 C/C++과 연동할 수 있고, 루아에서는 제공되지 않거나 구현 가능해도 너무
복잡한 부분을 C/C++에서 보다 쉽게 구현하여 결과를 루아 쪽으로 넘길 수도 있다.
그럼 일단 C++과 루아가 교시을 하려면 우선 변수들을 주고 받을 수 있어야 하는데 이를 담당하는 것이 lua state(루아상태)라는 구조체이다.
이 lua stat를 이용하여 C++로 작성된 함수를 루아에서 호출할 수 있으며, 그 반대로 C++에서도 루아 함수를 실행할 수 있다.
ㅇ C++에서 루아 호출하기
C++에서 루아로 접근 할 수 있도록 해주는 함수를 루아 API라고 부른다.
C++를 루아를 호출 할 수 있도록 세팅을 해보자
C++에서 루아를 호출할떄 VC버젼에 맞제 다운 받아서 세팅해주는것이 가장 중요하다. 그냥 다운 받았다가 3~4 시간 삽질했다 ㅠ
여기로 바로 들어가도 되고 http://luabinaries.sourceforge.net/ 아니면 http://www.lua.org/ 에 들어가서 download ->Binaries 로 들어가도 된다.
밑으로 내려가보면 History 가 있을 것이다. 그리고 이제 밑에 그림을 보고 차례 대로 하면 된다.
간단하게 설명을 하면 Win32, Win64 는 윈도우 버젼이다. 자신이 예를 들면 자신 그냥 XP 버젼이라면 Win32 버젼을 선택하면되고 만약 64비틑 버젼이라면 Win64를 다운 받으면 된다.
그리고 gcc, cygw , vc 이렇게 이름이 붙는데 이건 컴파일러 이름이다. 나는 비주얼 C++ 을 사용하기 떄문에 VC 버젼을 다운 받으면 된다.
그 뒤에 나오는 것은 버젼이다. vc8 vc9 vc10 나오는데 vc8은 ==>2005, v9 ==> 2008, v10 ==> 2010 이다.
그래서 종합해보면 예를 들어 내가 WIn Xp 32비트 버젼이고 비주얼 C++ 2008을 사용한다면
lua5_1_4_Win32_vc9_lib.zip 를 다운 받으면 된다는 것이다.
아마 WIndow7 32버젼도 똑같이 Win32로 다운 받으면 될것이다.
이제 다운을 다 받았다면 이제 VC에서 세팅을 해주어야 될것이다.
일단 전제로 컴퓨터에 C:\lua5 에 루아가 깔려 있다는 전제로 설명한다.
다운 받은 파일을 압축을 풀면 다음과 같이 나올 것이다.
include 폴더 내용물은 C:\lua5 \include (inlcude 폴더를 만들어서)복사 했고
C:\lua5\lib 폴더를 하나 만들어서 lua5.1.lib 파일을 복사 했다.
그런 다음에 VC에서 프로젝트로 가서 win32콘솔응용프로그램을 Test버젼으로 하나 만든다 그리고
메뉴에서 도구 -> 옵션 ->프로젝트 및 솔루션 -> VC++ 디렉터리 가서 밑의 그림 처럼 포함 파일과 라이브러리 파일을 추가해 준다.
자 이제 마지막 하나만 남았다 프로젝트 안에서 lua5.1.lib 파일을 로드 해주오야 하는데 방법은 두가지가 있다.
하나는 소스에 #pragma comment(lib, "lua5.1.lib") 를 추가 해주는 방법과 아니면 밑의 그림 처럼 메뉴에서 프로젝트 -> 속성에 들어가서
다음과 같이 추가 해주는 방법이 있다. 자신이 편한방법으로 해주면 되겠다.
그럼 간단한 하게 프로그램을 하나 만들어보자
소스 다운
실행 시켜 보자
ps 참고 및 출저 : 예제로 배우는 프그래밍 루아
'[ C/ C++ 프로그래밍 ] > [ 루아 ]' 카테고리의 다른 글
[ 루아 ] C++ 연동 - 루아에서 C++ 호출하기 (0) | 2010.07.26 |
---|---|
[ 루아 ] C++ 연동 - 2 -루아를 이용한 환경설정 - (1) | 2010.07.26 |
[ 루아 ] 코루틴 (1) | 2010.07.24 |
[ 루아 ] 클래스 캡슐화 (1) | 2010.07.22 |
[ 루아 ] 클래스 상속 (1) | 2010.07.22 |