Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<string>
- #include"include/lua.hpp"
- using namespace std;
- struct a{ int x = 0;
- a() {cout <<"jn" << endl;
- this->x = x;}
- void get() {
- cout << x << endl;
- }
- };
- int set(lua_State *L) {// передаем указатель на состояние
- //a s;//значение переменной по умолчанию.
- a ** s = (a **)lua_newuserdata(L, sizeof(a *));
- lua_getglobal(L, "a"); /* Использовать глобальную таблицу Sprite в качестве метатабельной */
- lua_setmetatable(L, -2);
- return 1;// вернуть 2.
- }
- int get(lua_State *L) {// передаем указатель на состояние
- if (LUA_TUSERDATA == lua_type(L, 1)) {// если это польз. данные.
- a *p = (a*)lua_touserdata(L, 1);
- p->get();
- }
- return 1;// вернуть 1.
- }
- int main() {
- lua_State *L = luaL_newstate();
- luaL_openlibs(L);//открыть все стандартные библиотеки lua.
- lua_pushcfunction(L, set);//уст указатель на функцию C++ и создает внутри Lua
- lua_setglobal(L, "set"); //получает значение из стека и уст значение global name.
- lua_pushcfunction(L, get);//уст указатель на функцию C++ и создает внутри Lua
- lua_setglobal(L, "get"); //получает значение из стека и уст значение global name.
- luaL_dofile(L, "main.lua");/* Загружает и запускает заданный файл. файл в
- которым все происходит.*/
- lua_pcall(L, 0, 0, 0);// вызов функции в lua файле.
- lua_close(L);// закрыть состояние
- cin.get();//ожидает ввода символа программа завершается.
- return 0;
- }
- lua
- sp=set()
- get(sp)
Add Comment
Please, Sign In to add comment