lua中的轻量级userdata以及userData
来源:互联网 发布:全境封锁网络优化 编辑:程序博客网 时间:2024/05/30 22:52
print(userdata)
DoSomeThing(userdata)
-- userdata:showmessage
end
#include "stdafx.h"
#include "stdlib.h"
extern "C"
{
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
}
#define __LightUserData__ 1
class VEC
{
public:
int mx;
int my;
VEC()
{
printf("constructor\n");
mx=100;
my=120;
}
void ShowMessage()
{
printf("modify message\n");
mx=1000;
my=2000;
printf("now x=%d,y=%d\n",mx,my);
}
};
int DoSomeThing(lua_State * L)
{
VEC *pVec = (VEC *)lua_touserdata(L,-1);
printf("LightUserData: x=%d,y=%d\n",pVec->mx,pVec->my);
pVec->ShowMessage();
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
lua_State *L = luaL_newstate();
luaL_openlibs(L);
lua_register(L,"DoSomeThing",DoSomeThing);
if(0 != luaL_dofile(L,"helloworld.lua"))
{
printf("%s",lua_tostring(L,-1));
}
lua_getglobal(L,"Test");
#if __LightUserData__
//这个调用了构造函数
VEC *pVec = new VEC;
lua_pushlightuserdata(L,pVec);
#else
//这个不会调用构造函数
VEC *pVec = (VEC *)lua_newuserdata(L,sizeof(VEC));
pVec->mx = 100;
pVec->my = 200;
#endif
lua_pcall(L,1,0,0);
system("pause");
return 0;
}
- lua中的轻量级userdata以及userData
- Lua中的userdata
- Lua中的userdata
- Lua中的userdata
- lua userdata
- Lua Userdata
- Lua UserData
- userData
- Userdata
- Lua userdata资源释放
- lua中userdata
- Lua userdata资源释放
- Lua的userdata用法
- lua userdata 使用
- lua userdata 汇总
- lua 和userdata
- 传递userdata到lua
- Lua-UserData(用户自定义类型)
- netstat命令
- linux中断
- java之旅之常用类
- JAVA:URL存在跨站漏洞,注入漏洞解决方案
- ubuntu命令行关机
- lua中的轻量级userdata以及userData
- 电影:张嘉佳《从你的全世界路过》:如果是路过,我就在终点等你?
- SVN 常见问题
- Leetcode 172 Factorial Trailing Zeroes
- 随笔
- PostgreSQL自定义函数处理特殊需求
- UE4 编辑器坐标轴绘制和事件处理
- Android 设置EditText光标Cursor颜色及粗细
- TCP通信常用的send,sendto,recv,recvfrom函数详解