*はじめに [#m7e9958e] #contents スクリプトエンジン「Lua」の利用方法についてのメモです *Luaについて [#c7a1dd0a] **Luaとは [#t0ff3cac] オープンソースのスクリプトエンジンです。~ スクリプトとしては比較的速度が早く(らしい)~ C言語との親和性が高いのが特徴です~ 公式HP - http://www.lua.org/ 日本語リファレンス - http://milkpot.sakura.ne.jp/lua/lua51_manual_ja.html **利用準備 [#mf9409a3] Lua配布ページ~ - ~ **プロジェクトの設定 [#e50a41b8] --インクルードするヘッダファイル~ -インクルードするヘッダファイル~ -Cの場合~ --Cの場合~ lua.h lualib.h lauxlib.h -C++の場合~ --C++の場合~ lua.hpp --リンクするライブラリ~ -リンクするライブラリ~ lua51.lib *toLua++ [#n4bafee5] C/C++で実装した関数やクラスはLuaに登録することで~ スクリプト側から呼び出すことができます。~ 通常はLuaのAPIを用いて関数を登録していくのですが~ toLua++という外部ツールを用いると、LuaへのAPIの公開が簡単になります。~ **toLua++を使う準備 [#a15527a5] ダウンロードしてきて幾つかのファイルをプロジェクトに追加。~ .pkgファイルにLuaに公開したいクラス、関数を列挙。~ $#include "myHeader.h" int globalFunction(); class{ public: void classFunc1(); void classFunc2(int); }; 生成されたヘッダとソースをプロジェクトに追加。~ **toLua++を使う注意点 [#qc5564d5] -一部の演算子オーバーロードは使えない(^や+=など) -グローバルなオーバーロード演算子は使えない *Luaの基本的な使い方 [#x773c55a] -コンテキスト(LuaVM)を作る -Luaスクリプトをロードする *メモ [#m83949b4] Luaスクリプトをロードした時点で構文解析が行われる~ グローバル部分に記述したスクリプトは即実行~ 解析はファイルの上から進むので、定義前の関数や変数は実行できない~