2010年7月19日月曜日

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

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

  1. extern "C" {  
  2. #include "lua.h"  
  3. #include "lualib.h"  
  4. #include "lauxlib.h"  
  5. }  
  6.   
  7. int main(int argc, char* argv[])  
  8. {  
  9.   
  10.  // LuaのVMを生成  
  11.  lua_State *const L = lua_open();  
  12.   
  13.  // Luaの標準ライブラリを開く  
  14.  luaL_openlibs(L);  
  15.   
  16.  while (true) {  
  17.   // luaファイルを指定して実行する  
  18.   if (luaL_dofile(L, "test.lua")) {  
  19.    // エラー内容の取得  
  20.    printf("error:%s\n", lua_tostring(L, -1));  
  21.    lua_pop(L, 1);  
  22.    return 0;  
  23.   }  
  24.   
  25.   // 直接コードを指定する  
  26.   if (luaL_dostring(L, "print('hello lua world')")) {  
  27.    // エラー内容の取得  
  28.    printf("error:%s\n", lua_tostring(L, -1));  
  29.    lua_pop(L, 1);  
  30.    return 0;  
  31.   }  
  32.   
  33.   printf("\n");  
  34.   printf("hit any key...\n");  
  35.   printf("0 is exit\n");  
  36.   const char c = getchar();  
  37.   if (c == '0') {  
  38.    break;  
  39.   }  
  40.  }  
  41.   
  42.  // LuaのVMを閉じる  
  43.  lua_close(L);  
  44.   
  45.  return 0;  
  46. }  
getchar()のところでtest.luaを編集ご実行すると編集内容が反映されます。

0 件のコメント:

コメントを投稿