tolua++でLuaへのバインド

naohiro19
記事: 256
登録日時: 14年前
住所: 愛知県

tolua++でLuaへのバインド

投稿記事 by naohiro19 » 11年前

木曜日に投稿した「Luabindを使ってみました。」を書きましたが、tolua++でもクラスや関数・定数などをLuaにバインドすることができます。

スクリプト言語による効率的ゲーム開発 新訂版 (LuaとC/C++連携プログラミング)(Amazon.co.jp)」の131ページに以下の内容が書かれています。

CODE:

// luasample.h
#ifndef _LUASAMPLE_H_
#define _LUASAMPLE_H_

extern const char* GetItemName(int index);
extern int GetItemPrice(int index);
extern int GetSelection(const char *title);
#endif

CODE:

// luasample.pkg
$#include "luasample.h"
extern const char* GetItemName(int index);
extern int GetItemPrice(int index);
extern int GetSelection(const char *title);
と書かれていますがtolua++の$hfile機能を使えばパッケージファイル(*.pkg)に書かなくてすみます。

CODE:

// luasample.h
#ifndef _LUASAMPLE_H_
#define _LUASAMPLE_H_

// tolua_begin
extern const char* GetItemName(int index);
extern int GetItemPrice(int index);
extern int GetSelection(const char *title);
// tolua_end

#endif

CODE:

// luasample.pkg
$hfile "luasample.h"
として以下のコマンドを打ち込むとヘッダーファイルとLuaのグルーコードが生成されます。あとはメイン関数からluasample_glue.hの書かれている関数を呼び出せばLuaからCの関数・クラスを呼び出すことができます。
tolua++ -n luasample -o luasample_glue.cpp -H luasample_glue.h luasample.pkg

コメントはまだありません。