文档章节

c++导出静态成员给lua

karma303
 karma303
发布于 2015/09/22 21:11
字数 302
阅读 20
收藏 0

自己对c++不熟,每次写几行很简单的代码就要浪费不少时间.

今天就记录下c++里使用静态成员吧.

1,在类里面这样写(直接复制今天项目里的代码):

   public:
    /*shy wndobject.  点击屏幕任意位置都会消失*/
    static CWndObject *shyWnd;
    static CDialog *shyDlg;

2,cpp文件里还要初始化,刚才只是declare

CDialog *CWndManager::shyDlg = 0;
CWndObject *CWndManager::shyWnd = 0;

3,然后用的时候,一定要用::

自己总是爱写成.访问

::就是对类操作,"."就是对实例操作.总是记不住.


再顺便记一下导出静态成员给lua,就像导出普通成员一样(甚至更简单),反正get的时候,都是压一个userdata,set的时候,都是压一个userdata和value.  我们不用理会第一个参数.

tolua_variable(tolua_S, "shyWnd", CWndManager_Get_shyWnd, CWndManager_Set_shyWnd)

static int CWndManager_Get_shyWnd(lua_State * tolua_S){
    tolua_pushusertype(tolua_S, CWndManager::shyWnd, "CWndObject");
    return 1;
}

static int CWndManager_Set_shyWnd(lua_State * tolua_S){
    //lua压入的肯定是两个值,忽略第一个,因为在操作静态成员
    void * value = tolua_tousertype(tolua_S,2,0);
    CWndManager::shyWnd = (CWndObject *)value;
    return 0;
}

而且记得tolua_variable和tolua_function是写在一起的,不用分开,都是放在一个begin module和end module之间.

© 著作权归作者所有

下一篇: daily log
karma303
粉丝 0
博文 4
码字总数 1306
作品 0
东城
私信 提问
unreal4 引擎的 Lua 开发插件 - sluaunreal

sluaunreal 是腾讯开源的适用于 unreal4 引擎的 Lua 开发插件,可让开发者高效地使用 Lua 进行业务开发。sluaunreal 作为 unreal 引擎的插件,通过 unreal 自带蓝图接口的反射能力,结合 li...

匿名
2018/08/04
563
0
腾讯开源 Lua 开发插件 sluaunreal,加速游戏业务开发

近日,腾讯开源了其用于游戏业务的 sluaunreal,该项目是适用于 unreal4 引擎的 Lua 开发插件,可让开发者高效地使用 Lua 进行业务开发。 项目地址:https://github.com/Tencent/sluaunreal...

h4cd
2018/08/04
3.3K
1
luabind 0.9.1版本尝试

luabind 0.9.1版本尝试 http://www.rasterbar.com/products/luabind 1. 编译luabind 0.9.1 linux版本 编译luabind需要bjam binary。 直接copy boost/1.37.0目录中编译好的bjam binary到~/bin......

zero-li
2014/01/14
368
0
用LuaBridge为Lua绑定C/C++对象

最近为了总结Lua绑定C/C++对象的各种方法、第三方库和原理,学习了LuaBridge库为Lua绑定C/C++对象,下面是学习笔记,实质是对该库的Reference Manual基本上翻译了一遍,学习过程中测试代码,...

shezjl
2015/10/26
222
0
FFLIB之FFLUA——C++嵌入Lua&扩展Lua利器

摘要: 在使用C++做服务器开发中,经常会使用到脚本技术,Lua是最优秀的嵌入式脚本之一。Lua的轻量、小巧、概念之简单,都使他变得越来越受欢迎。本人也使用过python做嵌入式脚本,二者各有特...

知然
2013/01/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

PostgreSQL 11.3 locking

rudi
36分钟前
5
0
Mybatis Plus sql注入器

一、继承AbstractMethod /** * @author beth * @data 2019-10-23 20:39 */public class DeleteAllMethod extends AbstractMethod { @Override public MappedStatement injectMap......

一个yuanbeth
今天
8
1
一次写shell脚本的经历记录——特殊字符惹的祸

本文首发于微信公众号“我的小碗汤”,扫码文末二维码即可关注,欢迎一起交流! redis在容器化的过程中,涉及到纵向扩pod实例cpu、内存以及redis实例的maxmemory值,statefulset管理的pod需要...

码农实战
今天
4
0
为什么阿里巴巴Java开发手册中不建议在循环体中使用+进行字符串拼接?

之前在阅读《阿里巴巴Java开发手册》时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下: 那么我们首先来用例子来看看在循环体中用 + 或者用 StringBuilder 进行字符串拼接的效率...

武培轩
今天
8
0
队列-链式(c/c++实现)

队列是在线性表功能稍作修改形成的,在生活中排队是不能插队的吧,先排队先得到对待,慢来得排在最后面,这样来就形成了”先进先出“的队列。作用就是通过伟大的程序员来实现算法解决现实生活...

白客C
今天
78
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部