Здравствуйте уважаемые программисты. Занимаюсь lua api c++.
Хочу реализовать класс, но что-то не получается, Помогите пожалуйста.
Скрытый текст |
|---|
Скрытый текст |
|---|
| #include<iostream> |
Скрытый текст |
|---|
| #include<string> |
Скрытый текст |
|---|
| #include"lua/lua.hpp" |
Скрытый текст |
|---|
| using namespace std; |
Скрытый текст |
|---|
| struct strlua |
Скрытый текст |
|---|
| strlua(int x) { |
Скрытый текст |
|---|
| this->x = x; |
Скрытый текст |
|---|
| void st(int x) { |
Скрытый текст |
|---|
| this->x = x; |
Скрытый текст |
|---|
| void get(int &x) { |
Скрытый текст |
|---|
| x = this->x; |
Скрытый текст |
|---|
| int LUA_new(lua_State *S) { |
Скрытый текст |
|---|
| strlua *p = new strlua(lua_tonumber(S, 1)); |
Скрытый текст |
|---|
| lua_pushlightuserdata(S, p); |
Скрытый текст |
|---|
| int LUA_get(lua_State *S) { |
Скрытый текст |
|---|
| strlua *p = (strlua*)lua_touserdata(S, 1); |
Скрытый текст |
|---|
| lua_pushnumber(S, x); |
Скрытый текст |
|---|
| int LUA_set(lua_State *S) { |
Скрытый текст |
|---|
| strlua *p = (strlua*)lua_touserdata(S, 1); |
Скрытый текст |
|---|
| p->st(lua_tonumber(S, 1)); |
Скрытый текст |
|---|
| int main() { |
Скрытый текст |
|---|
| lua_State *S = luaL_newstate(); |
Скрытый текст |
|---|
| luaL_openlibs(S); |
Скрытый текст |
|---|
| lua_register(S, "new", LUA_new); |
Скрытый текст |
|---|
| lua_register(S, "get", LUA_get); |
Скрытый текст |
|---|
| lua_register(S, "set", LUA_set); |
Скрытый текст |
|---|
| luaL_loadfile(S, "man.lua"); |
Скрытый текст |
|---|
| lua_call(S, 0, 0); |
|
как использовать на lua?
obj = new(42)
obj:set(15)
print(obj:get())