Здравствуйте уважаемые программисты. Занимаюсь 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())