daily pastebin goal
19%
SHARE
TWEET

Untitled

a guest Jan 21st, 2019 58 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include<iostream>
  2. #include<string>
  3. #include"include/lua.hpp"
  4.  
  5. using namespace std;
  6.  
  7. struct a{   int x = 0;
  8.     a() {cout <<"jn"  << endl;
  9.         this->x = x;}
  10.  
  11.     void get() {
  12.         cout << x << endl;
  13.     }
  14. };
  15.  
  16. int set(lua_State *L) {// передаем указатель на состояние
  17.     //a s;//значение переменной по умолчанию.
  18.     a ** s = (a **)lua_newuserdata(L, sizeof(a *));
  19.     lua_getglobal(L, "a"); /* Использовать глобальную таблицу Sprite в качестве метатабельной */
  20.     lua_setmetatable(L, -2);
  21.     return 1;// вернуть 2.
  22. }
  23. int get(lua_State *L) {// передаем указатель на состояние  
  24.  
  25.     if (LUA_TUSERDATA == lua_type(L, 1)) {// если это польз. данные.
  26.         a *p = (a*)lua_touserdata(L, 1);
  27.         p->get();
  28.     }
  29.     return 1;// вернуть 1.
  30. }
  31. int main() {
  32.     lua_State *L = luaL_newstate();
  33.     luaL_openlibs(L);//открыть все стандартные библиотеки lua.
  34.     lua_pushcfunction(L, set);//уст указатель на функцию C++ и создает внутри Lua
  35.     lua_setglobal(L, "set"); //получает значение из стека и уст значение global name.
  36.     lua_pushcfunction(L, get);//уст указатель на функцию C++ и создает внутри Lua
  37.     lua_setglobal(L, "get"); //получает значение из стека и уст значение global name.
  38.     luaL_dofile(L, "main.lua");/* Загружает и запускает заданный файл. файл в
  39.          которым все происходит.*/
  40.     lua_pcall(L, 0, 0, 0);// вызов функции в lua файле.
  41.     lua_close(L);// закрыть состояние
  42.     cin.get();//ожидает ввода символа программа завершается.
  43.     return 0;
  44. }
  45.  
  46. lua
  47.  
  48. sp=set()
  49.  
  50. get(sp)
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top