Guest User

Untitled

a guest
Jan 21st, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  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)
Add Comment
Please, Sign In to add comment