JavaScript (ECMA Script)를 C++에서 돌리기 위해서
Google Chrome에 탑재된 V8 Engine을 이용하여 구동하는 방법입니다.

LIB 파일 생성

아래에 첨부된 파일(Google_V8_JSEngine_Library_2_3_1_VS2010_Static.7z)을 이용하면 아래의 단계를 거치지 않아도 됩니다.


우선
SVN( http://tortoisesvn.net/downloads ), Python( http://www.python.org/ ), Scons( http://www.scons.org/ )
을 구한뒤 설치하고

환경 변수 설정을 해주었습니다.
1. Visual Studio의 vcvarsall.bat
2. PATH에 C:\Python27;C:\Python27\Scripts    (버전에 따라 다릅니다)


폴더를 하나 만들어
http://v8.googlecode.com/svn/trunk
의 경로로 SVN Checkout을 하고

그 폴더에서
scons msvcrt=static mode=release
scons msvcrt=static mode=debug
명령을 통해

v8.lib
v8_g.lib 를 만들었습니다.

Visual Studio에서 V8을 사용하는데 필요한 세팅


1. 라이브러리
기본적으로 v8을 사용하는데
v8.lib;winmm.lib;Ws2_32.lib
세개의 라이브러리 파일이 필요하며,
디버그 모드 일 경우 v8_g.lib를 사용해야합니다.

2. 타입형
유니코드를 사용할때 v8에선 wchar_t 대신 unsigned short를 사용하기 때문에
/Zc:wchar_t- 옵션(wchar_t를 기본 제공 형식으로 처리를 '아니요'로 설정)을 주셔야 합니다.


TestProject

1. Hello, World!

JSTest_HelloWorld.zip의 TestJavaScript.cpp를 참고해주세요.
(http://code.google.com/apis/v8/get_started.html 과 동일합니다)
VS2010으로 제작되었으며
디렉토리 경로를 위를 참고해서 재 설정 해주셔야 합니다.

2. JS Testor

MFC 기본 다이얼로그 창에 v8을 얹은 파일입니다.
JS_Tester.7z 의 JS_TesterDlg.cpp 부분만 참고해 주세요.
위의 Hello, World!와 근본적으로 다른건 없으며 Ansi대신 유니코드 문자열을 사용하는 점만 다릅니다.
역시 디렉토리 경로를 재 설정해 주어야 합니다.


이렇게 만들어진 프로그램들은
ECMA Script의 모든 기능을 사용할 수 있습니다.


참고 : http://code.google.com/apis/v8/


-뱀다리
v8을 static 모드로 제작할 경우 대략 1.5MB 정도의 용량이 추가되며
VS2010의 MFC도 static모드로 만들 경우 여기에서 1.5MB가 더 추가 되므로

VS2010에서 MFC와 v8을 동시에 사용할 경우엔 3MB 라는 아름다운 용량이 나오게 됩니다 ㄱ-

-뱀다리
근데 이게 문서를 적어야 했을 정도로 어려운 내용인가?