What is it, naokirin?

tolua++覚書き

さて、最近はめっきりC++を触る機会が少なくなってしまったので、同じように触らなくなっていたLuaですが、ちょっと前にRedisで触る機会があったのでついでに忘れそうなtolua++の設定や使い方を書いておくことにします。

いわゆるメモ書き。


とりあえずはtolua++をダウンロードします。tolua++公式ページ

ダウンロードしたファイルを展開して、コマンドプロンプトで・・・

という順当なやり方はすっ飛ばして、早速Visual Studioで使ってみたいと思います。


まず、tolua++を使うプロジェクトのフォルダと同じ階層のディレクトリにtolua++の展開したフォルダを配置します。
次に、プロジェクトにtolua++の中にあるsrc\libのフォルダ内の"tolua_event.c"、"tolua_is.c"、"tolua_map.c"、"tolua_push.c"、"tolua_to.c"を追加します。
次にプロジェクトのプロパティを開き、「C/C++」→「追加のインクルードディレクトリ」の部分にtolua++のディレクトリ内の"include"のディレクトリを追加しておきます。

さらに、tolua++内ののbinのディレクトリにあるtolua++.exeファイルをプロジェクトのあるディレクトリにコピーします。

さらに、同ディレクトリにフォルダを作成し、その中に"パッケージ名.pkg"というファイルを作成します。

今度はプロジェクト内にヘッダーファイルを作成し、C++からLua側に呼ばれる関数をexternで記述しておきます。
変数もexternで記述しておけば、バインドすることができます。
定数プリプロセッサはそのまま、このファイルに移動させるだけです。

また今さっき作った".pkg"という拡張子のファイルの中に全く同じようにexternでC++からLua側に呼ばれる関数、変数、定数プリプロセッサを記述しておきます。
ただし、一行目に「$#include "直前に作ったヘッダーファイル"」を追加しておきます。


あとは自動化するためにプロジェクトのプロパティの「カスタムビルドステップ」を設定すれば、全ての作業が自動化されます。

設定は以下のようになります。(この設定ではグル―コードは"パッケージ名_glue.h"と"パッケージ名_glue.cpp"で出力されます。また、"sample.h"の部分をexternを記述したヘッダーファイル名で置き換えてください)

コマンドライン:「"..\tolua++" -n $(InputName) -o "$(InputName)_glue.cpp" -H "$(InputName)_glue.h" "$(InputName).pkg"

説明:「tolua++でグルーコード($(InputName)_glue.cpp)を作成しています」
出力ファイル:「$(InputName)_glue.cpp;$(InputName)_glue.h」
追加の依存ファイル:「$(InputDir)sample.h」

これで自動でグル―コードが生成され、ビルドができるはずです。

ディレクトリの指定の場所を間違えたり、プロジェクトのプロパティを書き換え忘れたりしやすいのでその辺りには注意が必要です。



文章だけで書くとイミフです。
ちなみに今回私が使っているVisual Studioが2008なので、それ以外ではちょっと勝手が違うかもしれません。

これで、私も何とかtolua++を思い出すことができる気がします。
今回は"-n"と"-o"および"-H"のオプションしか使っていませんが、それ以外のオプションも存在するので使いこなせるようになりたいと思います。

ではでは。