luaL_dofile() を実行すると、toplevel の処理は実行されます。 その後、foo に引数つきで呼び出すようにしています。実行後は、戻り値を取得しています。 sample.lua #include <stdio.h> #include <stdlib.h> #include "lua.h" #include "lualib.h" #include "lauxlib.h" int call_lua_function(lua_State *L); int main(int argc, char **argv) { lua_State *L; if (argc < 2) { fprintf(stderr, "usage: %s filename\n", argv[0]); return -1; } L = luaL_newstate(); luaL_openlibs(L); if (luaL_dofile(L, argv[1])) { fprintf(stderr, "Error: %s\n", lua_tostring(L, -1)); lua_close(L); return -1; } call_lua_function(L); lua_close(L); return 0; } int call_lua_function(lua_State *L) { lua_Integer retvalue; lua_getglobal(L, "foo"); lua_pushnumber(L, 11); // argv #1 lua_pushstring(L, "bar"); // argv #2 // arg = 2, return = 1 if (lua_pcall(L, 2, 1, 0) !
mruby をビルドしてみた
手順はそのまんま。 少し前のものでは、SIZEOF_ ST_ INDEX_T の定義がなくて失敗していたけれど、今はすんなりコンパイルできる。 バージョン情報の表示が間違っているけれど。 環境 CentOS release 6.2 (Final) Linux centos62 2.6.32-220.7.1.el6.x86_64 手順と動作確認 $ git clone https://github.com/mruby/mruby.git $ cd mruby $ make $ cd bin $ ./mruby -v ruby 1.8.7 (2010-08-16 patchlevel 302) [i386-mingw32] Usage: ./mruby [switches] programfile switches: -b load and execute RiteBinary (mrb) file -c check syntax only -v print version number, then run in verbose mode --verbose run in verbose mode --version print the version --copyright print the copyright $ cat hello.
柴又 & 上野東照宮 ぼたん苑 - LEICA X1 試し撮り
いろいろ設定を変えながらの撮影。だんだんと、わかってきたような、わからないような。 それでも、自分で動いて調整するから、距離感はつかめてきたと思う。 それが “よりより方法” なのかどうかは分からないんだけれどね。 その他の写真は、こちら。 2012/01/28 柴又& 上野東照宮 ぼたん苑 - a set on Flickr