c++自动导出lua绑定】的更多相关文章

cocos 使用bindings-generator脚本代替了toLua++. 编写效率大大提高. 具体的在本机中分享:http://note.youdao.com/noteshare?id=0f4132271151c4b62f9afb712e8304d9 bindings-generator脚本的工作机制是: 1.不用挨个类地写桥接.pkg和.h文件了,直接定义一个ini文件,告诉脚本哪些类的哪些方法要暴露出来,注册到Lua环境里的模块名是什么2.摸清了toLua++工具的生成方法,改由Pyt…
[转载]https://note.youdao.com/share/?id=0f4132271151c4b62f9afb712e8304d9&type=note#/ 1.在纯C环境下,把C函数注册进Lua环境,理解Lua和C之间可以互相调用的本质2.在cocos2d-x项目里,把纯C函数注册进Lua环境,理解cocos2d-x是怎样创建Lua环境的.以及怎样得到这个环境并继续自定义它3.了解为什么要使用toLua++来注册C++类4.在纯C++环境下,使用toLua++来把一个C++类注册进Lu…
cococs2dx 3.13.1 + vs2013 + win10 1.首先定义C++类Student 在cocos2d-x\cocos文件夹下新建一个user_define的文件夹放置两个文件. 注意:这个类没有从Ref继承,是一个简单的C++类. ①头文件Student.h #pragma once #include "base/ccMacros.h" #include <iostream> #include <string> //注意这个CC_DLL,否则…
一.cocos2dx对tolua++绑定的修正 A.c对lua回调函数的引用 在使用cocos2dx编写游戏时,我们经常会设置一些回调函数(时钟.菜单选择等).如果采用脚本方式编写游戏的话,这些回调函数也是需要写在脚本里的.实现这个功能,就需要lua将自己的函数传递给c++,c++保持对这个函数的引用,不要让这个lua函数被垃圾回收,并在适当的时候回调这个lua函数. 这种需求的一般抽象是在C环境下保存lua状态,在PIL(Programming In Lua)里有比较详尽的描述.可以使用lua…
cococs2dx 3.13.1 + vs2013 + win10 1.首先按照<cocos2dx lua 绑定之一:自动绑定自定义类>绑定Student类 2.在Student类中增加一个用于测试手动绑定的函数manual_call ①Student.h中增加函数 //手动绑定调用函数 void manual_call(); ②Student.cpp中增加函数实现 //和自动绑定相比,只增加了这个函数 void Student::manual_call() { std::cout <&…
网上有很多cocos2d-x lua绑定c++类的接口教程,这篇文章也是总结他们的经验. 其中重点参考了 http://cn.cocos2d-x.org/tutorial/show?id=1295, 整个过程步骤很详细,会比较傻瓜式,希望对新手读者入门有用. 教程基本环境: 1.使用引擎是v3.3 beta版本 2.开发环境:OSX Yosemite 3. Cocos code IDE 4. Xcode 6 1.在Mac上用Cocos code IDE 写lua还是比较便利的,我们用cocos…
这几天要老大要求把DragonBones移到cocos2dx 3.0 里边,并且绑定lua使用接口.因为刚学lua,使用的引擎也刚从2.2改为3.0,各种不熟悉,折腾了好几天才弄完,有空了总结一下 这篇先说一下cocos2d生成lua绑定的修改,有空的话再写一篇lua中注册回调到c++中方法   我的目录结构 假设我的目录名称是DragonBones -Cocosdx目录 -DragonBones  -c代码 -c代码头 -tools  db_DragonBones.ini genbinding…
cocos2dx目前lua对应的c++对象的生命周期管理,是基于c++析构函数的,也就是生命周期可能存在不一致,比如c++对象已经释放,而lua对象还存在,如果这时候再使用,会有宕机的风险,为此我开发了cocos-lua项目,基于lua gc管理c++对象的生命周期. cocos-lua以cocos2d-x 3.17.2的c++项目为基础,采用基于lua gc来管理c++对象的生命周期,提供更丰富cocos2d-x lua api,包括几乎除模版以外的所有lambda(schedule.sche…
花了几天时间看了下cocos2d-x lua绑定那块,总算是基本搞明白了,下面分三部分解析lua绑定: 一.lua绑定主要用到的底层函数 lua绑定其本质就是有一个公用的lua_Stack来进行C和Lua之间的值传递,在路径[项目根目录]\frameworks\cocos2d-x\external\lua\luajit\include下有个lua.h文件,大部分lua绑定底层函数以及相关的常量都在这里. 1.lua堆栈常量 #define LUA_REGISTRYINDEX (-10000) /…
项目需要一个从excel导出lua配置表的工具,之前的工具是主程写的,效率极差,i7 CPU 一次全部导出要花掉1个多小时.匪夷所思的是,这么渣的效率,居然用了整整一年.当 然,中途有人反映效率差,主程直接无视了,随着呼声越来越高,主程终于有空行动了. 一天下来,主程宣布,其工具效率提升了近50%,并且说了很多非专业人士听不懂的话,什么换库了,什么小文件没法提速,什么python效率就是这么差…… 当即就有同志体验了改进过的工具,导出某几个文件速度的的确确,确确实实,实实在在提升了50%,于是公…
内容主要参考 “在quick-cocos2d-x中添加自定义的类给lua使用” ( http://www.codeo4.cn/archives/746) 1. quick-coco2d-x 使用 tolua++ 来简化lua绑定c++类操作,mac下用到了 /usr/local/bin/tolua++ ,可以把bin/mac下的可执行程序复制过去,省得编译安装了. 2. 在 lib/cocos2dx_extra/extra 下创建目录并实现c++类,例如 mylib/foo.h  mylib/f…
打算新项目转到cocos2dx v3上了,下载代码浏览过后发现改动真是非常大,结构性调整很多. 比如tolua绑定这一块,就几乎全翻新了. 胶水代码的生成,改成了全自动式的,通过clang来分析c++代码,可以准确的知道每一个类.函数.参数的信息,再也不用手动写pkg文件了. 运行期对象管理这块,似乎也有了不少改动,至少我原来的一些扩展代码运行不了了,还没来得及细看,待看完再一一录下. 先记录一下目前已看清楚的[类名表.类元表.对象实例]之间的关系: 1.类元表:最核心的表,在lua代码里是不可…
=============JAVA后台代码===================== package com.qgc.service.autoSendMsg.AutoSendMsg import java.io.File;import java.text.SimpleDateFormat;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map;import java.uti…
一.总原则:c++对象的生命期不依赖lua gc管理,手动创建的对象要手动销毁 二.引擎层在设计上就是支持脚本概念的(也就是说脚本的使用是“侵入式”的),与lua打交道的代码都封在CCLuaEngine,引擎各处模块都通过它来调用脚本,如CNode::update会调用CCLuaEngine->executeSchedule来调用脚本的update handler,再如CNode::onEnter/onExit/onCleanup等都会调用CCLuaEngine->executeNodeEve…
网上有好多写如何讲自己定义的方法绑定到lua的文章,当中都仅仅对环境配置做了简单的介绍,看到有的帖子写在绑定中遇到了各种各样的error.大部分是因为环境配置不对导致的,下面是官方的文档有标准的说明,里面说明了使用bindings-generator的环境须要,详细的如何配置路径网上多事一堆一堆的我把python用到的pyyaml和pyCheetah须要放置的路径写在了下面,全部的开发引擎都会有自己的说明文档.下面就是cocos2dx 官方文档 //如何使用 bindings-generator…
项目部署在服务期上之后,有了新的需求,需要每月定时备份mysql数据库的所有数据! 查找了网上的多篇文章之后,自己又对bat文件中的mysqldump语句进行改进,可以实现了不用输入密码就能自动定时备份数据库的功能! 下面就先以每天自动备份作为例子,将整个流程展示出来: 1.首先一点,你现在一个固定的地方,新建一个bat文件,用于系统的任务计划进程去执行bat中定义的相关操作! 因为是备份mysql数据库,所以我将bat文件新建在mysql的安装目录的bin目录下: 新建back_db.bat文…
话说博主我以前总是为资料共享的问题发愁,刚才鼓捣了一下EXCEL.发现有个功能还是不错的'发布' 以OFFICE2013为标准吧. 点击文件--导出-- 更改文件类型---另存为--(网页)htm 点击发布 OK 这样你在IIS上配置一下就可以访问了. EXCEL关闭的时候会自动更新发布的.可以F5试一下的~…
需求来源:当使用React时,使用 umi loading 很方便,页面对http请求发生改变时,也会自动改变loading的相关状态(true/false) 对VUE插件进行找寻,发现没找到合适内容,就参考思路自行设计了一套 功能实现 界面Loading自动加载,不需要在每个请求前后进行拦截,且配置简单.实现方便,如图: 技术栈 vue.vuex.axios(http请求) 开始实现 第一步,文件目录结构介绍: lib/http: Http封装,对系统请求进行封装 service/api.js…
上一章中将fairyGUI集成到C++工程,由于本人使用的是cocoslua,还需要将C++的绑定到lua中使用,本章记录一下过程,由于是过了一段时间,有些步骤忘记了,大概记录一下,诸位大大做个临时参考吧 1 打开\cocos2d-x-3.17.2\tools\tolua文件夹,创建一个py脚本,FairyGUIgenbindings.py.仿照genbingings.py写入代码: #!/usr/bin/python # This script is used to generate luab…
背景 在平常阅读各种文章时,注意到有的文章中流程图做得特别漂亮.特别羡慕.于是去搜索了下,发现mac平台好评很高的是一款名为ominigraffle的软件.这款软件不仅可以画图,还可以导出Xcode工程目录下的文件结构图.真是太棒了.于是做了如下实践. 实践 ominigraffle版本(绿色版),7.17.3 绿色软件推荐网站:OmniGraffle Pro 7.17.3 强大的图形工具 画流程图 不但可以用软件自带的形状和颜色,还可以去graffletopia下载网友分享的各种样式的模板.我…
一.              新建一个winform应用程序WindowsFormsApplication1 二.              添加web引用 . 报表服务:http://dbpdhkcax05:80/webservice/ReportService2005.asmx 报表执行服务:http://dbpdhkcax05:80/webservice/ReportExecution2005.asmx 右击“引用”-> 添加服务引用->输入URL地址点“前往”载入服务后点“高级”-服…
原文:http://blog.csdn.net/chenee543216/article/details/12074771 以下是代码: Animal.h文件 #pragma once #ifndef __ANIMAL_H__ #define __ANIMAL_H__ class Animal { public: Animal( const char *name ); void setAge( int age ); int getAge(); void sound(); ~Animal(void…
smartforms导出PDF: 常用函数有: convert_otfconvert_otfspooljob_2_pdfconvert_abapspooljob_2_pdfCONVERT_OTF_2_PDF;SX_OBJECT_CONVER_OTF_PDF;HRHAP_DOC_CONVERT_SMF_TO_PDF 实例: FORM export_pdf.   DATA:zsmart_name TYPE rs38l_fnam.   CALL FUNCTION 'SSF_FUNCTION_MODUL…
基于zabbix-manager python2.7 #!/usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "life" # Email: batistuta1977@163.com # Date: 2018/5/23 import smtplib,datetime,os,sys,time from email.mime.multipart import MIMEMultipart from email.mime.te…
1 Error parsing reanslation unit 这种情况,首先来说你的python 2.7以及他的插件安装是完整的,最可能的原因就是自己写的ini文件,header路径错误,可以把这个路径改成.h的绝对路径进行排查 2.dos2unix既不是外部也不是内部命令,也不是可运行的程序 解决方法: 把自己从网上下载的dos2unix.exe文件放在C:\Windows\System32这个文件夹底下,再重新运行脚本,就发现错误没有了. 如果还不行,可以配置环境变量里的path,使之指…
1.项目设置 build settings ->build options ->Scan all source files and Includes = YES 2.加入script (1)Editor->Add build phases->add run script build phases (2)在run script中添加 touch "$PROJECT_DIR"/../scripts (3)把run script 拖到Complie Resources…
描述:按照readme中的文档操作报错,提示python2.7没有安装,但是确实已经安装了,而且也设置环境变量成功了. 解决: 在D盘新建register.py的文件,内容如下: # # script to register Python 2.0 or later for use with win32all # and other extensions that require Python registry settings # # written by Joakim Loew for Sec…
转自:http://segmentfault.com/blog/hongliang/1190000000631630 关于cocos2d-x下Lua调用C++的文档看了不少,但没有一篇真正把这事给讲明白了,我自己也是个初学者,摸索了半天,总结如下: cocos2d-x下Lua调用C++这事之所以看起来这么复杂.网上所有的文档都没讲清楚,是因为存在5个层面的知识点: 1.在纯C环境下,把C函数注册进Lua环境,理解Lua和C之间可以互相调用的本质 2.在cocos2d-x项目里,把纯C函数注册进L…
Cocos2d-x下Lua调用自定义C++类和函数的最佳实践 洪亮 305 2014年08月09日 发布   1 推荐 21 收藏,14.9k 浏览 关于cocos2d-x下Lua调用C++的文档看了不少,但没有一篇真正把这事给讲明白了,我自己也是个初学者,摸索了半天,总结如下: cocos2d-x下Lua调用C++这事之所以看起来这么复杂.网上所有的文档都没讲清楚,是因为存在5个层面的知识点: 1.在纯C环境下,把C函数注册进Lua环境,理解Lua和C之间可以互相调用的本质 2.在cocos2…
v3.0 亮点 使用 C++(C++11) 的特性取代了 Objective-C 的特性 优化了 Labels 优化了渲染器(比 v2.2 更快) 新的事件分发机制 物理引擎集成 新的 UI 对象 JavaScript 远程调试器 支持远程控制台 使用 cocos console创建和运行项目 重构 Image - 及时释放内存,统一了支持文件格式的 API 自动生成 Lua 绑定,添加了 LuaJavaBridge 和 LuaObjcBridge 模板容器 使用 cocos2d::Map<>…