2010年7月19日月曜日

C++プログラマがLuaを勉強してみる第12回

◆C/C++からLuaを実行する
C++からLuaのコードを実行するサンプルをつくりました。
C++からLuaのコードを実行するためのライブラリ(lib)のコンパイルは後日紹介します。

extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}

int main(int argc, char* argv[])
{

 // LuaのVMを生成
 lua_State *const L = lua_open();

 // Luaの標準ライブラリを開く
 luaL_openlibs(L);

 while (true) {
  // luaファイルを指定して実行する
  if (luaL_dofile(L, "test.lua")) {
   // エラー内容の取得
   printf("error:%s\n", lua_tostring(L, -1));
   lua_pop(L, 1);
   return 0;
  }

  // 直接コードを指定する
  if (luaL_dostring(L, "print('hello lua world')")) {
   // エラー内容の取得
   printf("error:%s\n", lua_tostring(L, -1));
   lua_pop(L, 1);
   return 0;
  }

  printf("\n");
  printf("hit any key...\n");
  printf("0 is exit\n");
  const char c = getchar();
  if (c == '0') {
   break;
  }
 }

 // LuaのVMを閉じる
 lua_close(L);

 return 0;
}
getchar()のところでtest.luaを編集ご実行すると編集内容が反映されます。

0 件のコメント:

コメントを投稿