私はこのボイラープレートの例に従いました: http://www.matrix44.net/blog/?p=456
C から Lua に文字列を送信できますが、構造体を渡すとエラーが発生します (lua_newuserdata を使用しました)。
C中略
//s = (ST*) malloc ( sizeof(ST) );
// lua_pushlightuserdata(state, s);
s = lua_newuserdata(state, sizeof(ST));
s->a=11;
s->b=12;
printf ( "s = %p \n", s ); // Prints 0x80a708
result = lua_pcall(state, 0, LUA_MULTRET, 0);
ルア・スニップ
print(foo) --> Prints 0x80a708
io.write("received has:\n", foo.a); --> ERROR : Failed to run script: script.lua:1: attempt to index global 'foo' (a userdata value)
バッファを構造体/テーブルレコードにキャストするにはどうすればよいですか?
最終的に、私の C プログラムは構造体を認識せず、バッファを Lua に渡すだけであり、Lua は構造体を認識しており、そこにキャストする必要があります。
PS : スクリプトと C プログラムの両方の printf が一致します (0x80a708)。キャストできますか??