趣味で作ってるロボット用ソフトウェア
 All Classes Files Functions Enumerations Enumerator Friends Pages
use_function_from_lua.cpp

Lua スクリプトから C++ の関数を使うサンプル

#include <string>
#include <iostream>
#include <lua.hpp>
#include <luabind/luabind.hpp>
using namespace luabind;
using namespace std;
int main(int argc, char *argv[])
{
static_cast<void>(argc);
static_cast<void>(argv);
// Lua, Luabind の初期化
lua_State* lua = luaL_newstate();
luaL_openlibs(lua);
luabind::open(lua);
// Lua スクリプトのロード
if (luaL_dofile(lua, "hello_function.lua")) {
string error_message = lua_tostring(lua, -1);
cout << "loadL_dofile: " << error_message << endl;
return 1;
}
try {
call_function<void>(lua, "hello");
} catch (const error &e) {
static_cast<void>(e);
cout << "hello(): " << lua_tostring(lua, -1) << endl;
}
return 0;
}