话接上文.笔者为了方便使用Lua,自己编写了一个Lua的类.主要代码如下: QLua.h #ifndef QLUA_H #define QLUA_H // own #include "include/lua.hpp" // qt #include <QObject> #include <QFile> #include <QDebug> #include <QWidget> #include <QLineEdit> #inclu…
JavaScript -- 知识点回顾篇(三):js中的 String 对象的方法 (1) anchor(): 创建 HTML 锚. <script type="text/javascript"> var txt1="Hello world!" document.write(txt1.anchor("mytxt1")) </script> (2) big(): 用大号字体显示字符串. <script type=&qu…
话接上篇.成功配置好Qt+Lua+toLua后,我们可以实现在Lua脚本中使用各个Qt的类.直接看代码吧. #include "include/lua.hpp" #include <QWidget> #include <QApplication> #include <QFile> #include <QDebug> static int tolua_new_QWidget(lua_State* pState) { QWidget* wid…
通过上一篇的热身,我们对C++调用lua变量有了一个认识,现在让我们再深入一点,去探索一下如何调用lua的函数.表. Lua与宿主通讯的关键--栈 lua是个动态脚本语言,它的数据类型如何映射到C++这种静态类型语言中?lua是有GC机制的,这与C++手动管理内存相悖.如何解决这些问题呢?lua用一个抽象的栈与宿主语言交互,栈中的每一条记录都可以保存lua值.无论何时,我们想要从lua请求一个值,调用lua,被请求的值将会被压入栈. 栈是由lua来管理的,垃圾回收器知道哪个值正在被C使用(如果从…
假设lua中: name="gzw" id=17010805 sex=man tab={ num=100, str="hello" } foo_one=function() print("不带参数的foo()被调用了") end foo_two=function(num) print("num=",num) return num end 接下来要在C++中调用lua. 首先看调用全局变量: int main() { lua_S…
话接上篇.通过前几篇博客,我们实现在Lua脚本中执行Qt类中函数的方法,以及在Lua脚本中连接Qt对象的信号与槽. 但是,我们也能发现,如果希望在Lua脚本中执行Qt类的函数,就必须绑定一个真正实现功能的函数.如QWidget::show(),需要写一个在栈中取出widget指针,widget调用show()函数的方式.如果希望在Lua中调用大量函数,就需要编写大量的C++实现函数.有没有什么省时省力的好方法呢? 上一篇中我们实现了在Lua脚本中连接信号与槽.我们只是传过去了两个QObject的…
Lua是一门神奇的脚本语言,游戏宅必备,懒人必备.Lua差多不是学起来用起来最简单的语言了,以至于简单到自身就是文档,自身就是配置文件.但是Lua的运行效率却是众多脚本中非常高的,据说仅次于V8爹下的js.主要原因是它是主要和c/c++打交道嵌入式脚本,c++的逻辑写的着实蛋疼的时候可以考虑下这门脚本语言. Lua有直接的windows安装包的,还内置了一个编辑器很不错.但是为了更深层次的理解Lua,本文主要介绍下如何利用Lua源码来自己编译解释器. 首先我们去下载一下Lua的本体... 百度输…
最近在使用osg和qt开发,在集成osg时候因为我使用的qt版本为非opengl的版本,导致qt自己封了一遍opengl的一些基类变量如double 这时候就会跟osg中声明的opengl的类型冲突,提示重定义了不同的基类行. 解决方案: 使用opengl版本的qt库 =..= 在QT中使用C++编写的lib库 需要修改pro文件,主要问题是引用路径的问题 _pro_file_pwd 代表了工程文件当前目录 可以通过在qt creator 的帮助中 搜索 variables 来查看相关详细介绍,…
偶然间看到Lua这种脚本语言,有点兴趣,简单学习了一下. 发现Lua与C++之间可以实现非常强的交互性.Lua中可以使用C++中的函数,C++中也可以使用Lua中的函数.由此可以引发出很多奇思妙想了. 简单来说,Lua动态的特性补充了C++的功能.当然,也看你具体怎么用. 笔者经常使用Qt,故准备将Qt和Lua结合在一起.想象一下在Lua脚本中调用如下代码: w = QWidget:new() w:show() 然后弹出一QWidget的窗口,是多么感人的一件事情呀. 好,下面开始配置环境吧.…
Lua与C++之间可以实现非常强的交互性.Lua中可以使用C++中的函数,C++中也可以使用Lua中的函数.由此可以引发出很多奇思妙想了. 简单来说,Lua动态的特性补充了C++的功能.当然,也看你具体怎么用. 笔者经常使用Qt,故准备将Qt和Lua结合在一起.想象一下在Lua脚本中调用如下代码: w = QWidget:new() w:show() 然后弹出一QWidget的窗口,是多么感人的一件事情呀. 好,下面开始配置环境吧. 1. 下载Lua 5.1.目前的最新版本是5.2,但是因为使用…
前两篇文章中介绍了C++调用lua.lua栈操作的一些相关知识. 下面说一下Lua的工具.我们下一步要用到其中的一个帮助我们的开发,其实,Lua里面有很多简化开发的工具,你可以去www.sourceforge.net去找一下.它们能够帮助你简化C++对象与Lua对象互转之间的代码.这里说几个有名的,当然可能不全. (lua tinker)如果你的系统在windows下,而且不考虑移植,那么我强烈推荐你去下载一个叫做lua tinker的小工具,整个工具非常简单,一个.h和一个.cpp.直接就可以…
上一篇我们搭建好了整个的项目环境,现在,我们一起探索一下如何将lua寄宿到C++中. 宿主的实现 我们在LuaWithCPPTest项目下,查看Source.cpp代码如下: #include <iostream> #include <fstream> #include <string> using namespace std;   extern "C" { #include <lua.h> #include <lauxlib.h&…
|Lua 简介 Lua 是一种轻量小巧的脚本语言,也是号称性能最高的脚本语言,它用C语言编写并以源代码形式开放. 某些程序常常需要修改内容,而修改的内容不仅仅是数据,更要修改很多函数的行为. 而修改函数行为这种事,很难用简单的更改数据的方式来实现,若在源代码层面上改又得重新编译生成,导致修改成本高. 而脚本语言先通过更改数据,并加了一层对数据解释成运行代码的步骤,从而使程序能在运行时更改复杂的函数行为而无需重新编译. 它为程序大大地提供了灵活的扩展和定制功能,减少了修改的成本. 而游戏程序往往会…
重点文章: 1.[Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(上) 2.[Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(中) 3.Lua和C++交互详细总结 4.LuaInterface简介 5.不同版本Lua介绍 6. C#与Lua相互调用 7.在Unity中使用Lua脚本:语言层和游戏逻辑粘合层处理 8.Unity3D 预备知识:C#与Lua相互调用 9. Lua for Windows 开始学习Lua编程 10.腾讯开源手游热更新方案,Unity3D下…
http://blog.csdn.net/vagrxie/article/details/4602961 Win32 OpenGL 编程( 1 ) Win32 下的 OpenGL 编程必须步骤 write by 九天雁翎 (JTianLing) -- blog.csdn.net/vagrxie 讨论新闻组及文件 一.    前言 人生在于折腾,继续折腾吧. OpenGL 编程的红宝书< OpenGL Programming Guide>在举例子的时候为了平台无关,使用的都是 GLUT 来管理窗…
前言   上一篇成功是EChart随着Qt窗口变化而变化,本篇将开始正式介绍柱状图介绍.基础使用,并将其封装一层Qt.  本篇的demo实现了隐藏js代码的方式,实现了一个条形图的基本交互方式,即Qt调用js脚本操作html.   Demo演示      ECharts调试工具   ECharts提供的纯JS代码编辑开发调试工具,可编辑js,并且查看运行效果:  https://echarts.apache.org/examples/zh/editor.html    开发过程中对于属性的查询和…
1.概述 游戏也好,程序也好,只有能与用户交互才有意义.手机上的交互大致可以分为两部分:点击和输入.其中点击更为重要,几乎是游戏中全部的交互.在Cocos2d-x 3.0中,更改了dispatch机制.同时加入了两种新的交互形式:listener 和touchEvent回调.加上先前版本中的点击函数回调,与重写layer层的touch消息响应,构成了一个相对完整的交互模式. 2.三种点击 1.函数回调 函数回调是最简单的响应形式,一直以来被用于MenuItem中的点击处理.在新版本中,此处发生了…
引言 通过前几篇,我们已经对Lua的C API有了一定的了解,如lua_push*.lua_is*.lua_to*等等.用C++调用Lua数据时,我们主要运用lua_getglobal与lua_push*配合以达到目的.现在我们来试试用Lua调用C++数据. C++数据类型映射到Lua C++中数据类型有这么几种:1.内建的int.float等:2.指针,如void *.int *.int (*fun)(int, int)等:3.用户自定义的class.strcut等.Lua中C API支持操作…
引言 之前做手游项目时,客户端用lua做脚本,基本所有游戏逻辑都用它完成,玩起来有点不爽,感觉"太重"了.而我又比较偏服务端这边(仅有C++),所以热情不高.最近,加入了一个端游项目,客户端和服务器都用了lua,各种玩法是让我眼界大开.在此,写下自己的心得与体会,希望能与大家共同探讨进步. 环境搭建 lua官网下载lua源代码,我们将用它来编译静态库,解释器,以及动态库. CMake官网下载最新的安装包,我们将用它来作为搭建solution的工具. 集成开发环境为VS2012,整个的编…
一.Android中WebView的漏洞分析最近在开发过程中遇到一个问题,就是WebView使用的时候,还是需要解决之前系统(4.2之前)导致的一个漏洞,虽然现在这个系统版本用户很少了,但是也不能忽视,关于这个漏洞,这里就不多做解释了,可能有的同学早就了解了,本来想写一篇文章详细介绍一下,但是网上的知识太多了,而且都很详细,就没弄了,这里大致简单明了的说几句:第一.漏洞产生的原因这个漏洞导致的原因主要是因为Android中WebView中的JS访问本地方法的方式存在缺陷,我们做过交互的都知道,A…
我先来吐槽一下我们这个项目. 我是做手机游戏的, cocos2dx引擎, lua编码. 这本来是一件很欢快的事情, 因为不用接触C++. C++写久了的人写lua, 就会感觉任督二脉被打通了, 代码写起来都不用太多考虑, 就像涉世太深的人吹起牛逼肆无忌惮, 总是可以自圆其说. 然而, 事与愿违, 我们客户端的兄弟仍然要编写大量C++代码, 其原因是, 配置文件, 数据结构统统由后端决定, 而后端没有人会lua, 因此数据全部放在C++, 客户端每一次存取数据都会接触到C++. 然后, 就出现了今…
项目开发的脚本层用的是Lua,引擎用的是C++.但是经理不给开放引擎层的代码.刚好最近项目空闲,安排了学习C++跟Lua的通信. 一.C++与Lua数据交互 数据交互主要是通过C API来实现 首先,要加入Lua的头文件 extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib" } 也可以用#include "lua.hpp"代…
闲着无聊,打算开发一些PHP组件来玩玩,由于在家没有工作环境,遂打算在win32(我的环境是vista)用VC开发DLL模块,费话不 多说了,进入正题: 一.已经在机器上安装PHP环境的就略过,否则先安装apache+php5(当前用的是PHP5.2),推荐用appserv,可以不安装mysql相关. 二.下载PHP源码,从官方(http://www.php.net/downloads.php)下载 Complete Source Code,我当前版本是PHP5.2.6(最好与当前 运行版本一致…
环境:Qt5.7.0,VS2013 一.简单介绍 从 Qt5.4 开始已经去掉 Qt WebKit 模块了,使用的是 chrome 内核封装的 QtWebEngine,浏览器相关的类有以下几个: QWebEngineCertificateError Information about a certificate error QWebEngineDownloadItem Information about a download QWebEngineFullScreenRequest Enables…
一.引言         学习Redis也有一段时间了,感触还是颇多的,但是自己很清楚,路还很长,还要继续.上一篇文章简要的介绍了如何在Linux环境下安装Lua,并介绍了在Linux环境下如何编写Lua脚本和运行.由于我们这个系列是以Redis为主,所以也介绍了Redis和Lua如何进行整合.运行.        在Lua脚本中有一个很重要的数据类型,那就是table类型,大家可以把Lua的table类型暂时理解为数组,只是Lua的table类型的下标可以是数字,可以是字符,除了(nil)类型…
硬件 http://zhan.renren.com/h5/entry/3602888498044209332 GL-iNet 1 首先安装 webserver之lighttpd  ,openwrt自带的是uhttpd http://www.voidcn.com/article/p-zqbwgqwy-vy.html 1-1安装过程简略 1-2配置 Lighttpd默认页面 http://localhost/index.lighttpd.html 写lighttpd的配置文件lighttpd.con…
目录 6.Qt Installer Framework 示例 7.参考 Reference 配置文件 Configuration File 配置文件元素的简要说明 Summary of Configuration File Elements 包目录 Package Directory 包目录结构 Package Directory Structure 元信息目录 Meta Directory 数据目录 Data Directory 控制脚本 Controller Scripting 编写控制脚本…
Qt移动应用开发(三):使用精灵图片实现帧动画 上一篇博文讲到了Qt Quick对于动画的一般支持.动画的形式多样,配合不同的插值函数,能够差点儿实现全部想要的动画效果,而对于游戏的一些特殊的效果比方说帧动画,Qt更是有专门的类来实现.以下我们就来看看Qt Quick中到底是对帧动画是怎样实现的吧. 原创文章.反对未声明的引用. 原博客地址:http://blog.csdn.net/gamesdev/article/details/33743527 一般2D的游戏引擎都将帧动画作为一项非常重要的…
转:https://bbs.pediy.com/thread-224136.htm 准备刷漏洞战争中的堆溢出部分,但是对于堆的了解较少,在这里记录一下关于堆的学习记录,有错误请各位大大拍砖 参考: <软件调试> <0day安全 软件漏洞分析技术> win32下的堆管理系统: 1. win32堆管理器 win32堆管理器由NTDLL.dll实现,目的是为用户态的应用程序提供内存服务,从实现角度上来讲,内核态的池管理器和用户态的win32堆管理器默用的是同一套基础代码,它们以运行时的方…
转载自:http://my.oschina.net/muou/blog/408543[木偶:Windows下使用Hadoop2.6.0-ecli­p­s­e­-­p­­lugin插件] 对于一些细节地方,我进行了补充. 一.简介 Hadoop2.x之后没有Eclipse插件工具,我们就不能在Eclipse上调试代码,我们要把写好的java代码的MapReduce打包成jar然后在Linux上运行,所以这种不方便我们调试代码,所以我们自己编译一个Eclipse插件,方便我们在我们本地上调试,经过h…