std::unique_ptrを使ったLuaのテストプログラム(C言語編)

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

std::unique_ptrを使ったLuaのテストプログラム(C言語編)

投稿記事 by naohiro19 » 11年前

CODE:

#include 
#include 
#include 

//Luaのカスタムデリータ
struct LuaDeleter {
	typedef lua_State* pointer;
	void operator()(lua_State* ptr)
	{
		if(ptr) {
			lua_close(ptr);
		}
	}
};

typedef std::unique_ptr LuaPtr;

int add(lua_State* L)
{
	int a = (int)lua_tonumber(L, 1);
	int b = (int)lua_tonumber(L, 2);
	int ret = a + b;
	lua_settop(L, 0;
	lua_pushnumber(L, ret);
	return 1;
}

int main()
{
	LuaPtr L(luaL_newstate()); 	//LuaのVMを生成
	luaL_openlibs(L.get());		//Luaの標準ライブラリを開く
	
	//Luaに関数を登録
	lua_register(L.get(), "add", &add);
	
	//登録されているか確認
	luaL_dostring(L.get(), "print(add(10,9))");
	
	
}	//Lは関数を抜けると自動的に破棄される

セミコロン入れ忘れたので追加しました。
最後に編集したユーザー naohiro19 on 2014年5月31日(土) 08:01 [ 編集 2 回目 ]

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