3
でLuaのクラスを登録します。私のCコードは、で構成されてC
/*
** lgamelib.c
** Game Library
** See Copyright Notice in lua.h
*/
#include <stdlib.h>
#include <math.h>
#define lgamelib_c
#define LUA_LIB
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
static int game_workspace (lua_State *L) {
lua_pushstring(L, "Workspace");
return 1;
}
static int game_sound (lua_State *L) {
return 1;
}
static const luaL_Reg gamelib[] = {
{"Workspace", game_workspace},
{"Sound", game_sound},
{NULL, NULL}
};
/*
** Open game library
*/
LUALIB_API int luaopen_game (lua_State *L) {
luaL_register(L, LUA_GAMELIBNAME, gamelib);
//lua_pushnumber(L, PI);
//lua_setfield(L, -2, "pi");
//lua_pushnumber(L, HUGE_VAL);
//lua_setfield(L, -2, "huge");
return 1;
}
ソリューションを構築した後、例えば、「印刷(game.Workspace())」「ゲーム」のも、私かかわらず、ゼロであることを返します。それを登録しました。どんな解決策ですか?私は完全に固執しています...私はlgamelib.cをどこかに入れる必要があると信じていますが、私は私が必要と信じていません。
"LUA_GAMELIBNAME"の定義は表示されませんでした。あなたはこれが「ゲーム」であると訴えていますか?また、実際に 'luaopen_game'を呼び出しましたか? –