Visual C++でLuaを使ってみる
Luaをダウンロード
http://www.lua.org/のdownloadメニューから最新版をダウンロードできます。
http://code.google.com/p/luaforwindows/なんかをダウンロードするとエディタと実行環境もついてきますが、今回はVisual C++から使うということなので、Windows用のバイナリからlua5_1_4_Win32_vc9_lib.zipをダウンロードしました。
適当なフォルダ(C:\Lua\)をつくり、lua5.1.libをC:\Lua\libフォルダに、includeフォルダの中身をC:\Lua\includeフォルダに入れました。
Visual C++へのディレクトリの追加
Visual C++のツール->オプションから「VC++ディレクトリ」に先ほどのlibフォルダ(ライブラリ)、includeフォルダ(インクルード)を追加しましょう。これで設定は完了です。
テスト用プロジェクトの作成
新規プロジェクトで「Win32コンソールアプリケーション」を作成、「空のプロジェクト」にチェックを入れておきます。
新たなファイルmain.cppを追加し、次のソースコードを打ち込みます。
main.cpp
#include <stdio.h> #include "lua.hpp" #pragma comment(lib, "lua5.1.lib") int main(int argc, char* argv[]) { // Luaを開く lua_State* L = luaL_newstate(); // Lua標準関数を使う luaL_openlibs(L); // Luaファイルを読み込む if(luaL_loadfile(L, "c:\\Lua\\test\\sample.lua") || lua_pcall(L, 0, 0, 0)) { perror(lua_tostring(L, -1)); } // 関数を読み込む lua_getglobal(L, "speech"); if(lua_pcall(L, 0, 0, 0)) { perror(lua_tostring(L, -1)); } // グローバル変数を読む lua_getglobal(L, "Name"); if(lua_isstring(L, -1)) { printf("My name is %s.\n", lua_tostring(L, -1)); } // Luaを閉じる lua_close(L); getchar(); return 0; }
lua5.1.libのあたりは使っているライブラリにあわせて変える必要があります。
Luaスクリプトも書いていきましょう。
sample.lua
-- sample.lua -------------------------------------------------------------------------------- Name = "ちゃーちゃん" print("Hello, " .. Name .. "!") function speech() print("Is your name " .. Name .. "?") end
ビルドして実行してみましょう。