windows下Qt与lua结合简单介绍
来源:互联网 发布:wumpus java 游戏编码 编辑:程序博客网 时间:2024/06/15 11:59
一、下载lua编译好的windows下二进制库
http://joedf.users.sourceforge.net/luabuilds/
下面就是载下来的最新lua编译好的文件
二。简单测试:
1.打开windows的cmd终端,并进入到该目录,进入后可运行lua指令,进入lua命令终端,输入一个打印语句 print("hello"),可以看到输出hello
2.按ctrl+c退出lua的命令终端,在同级目录下建立一个print的打印脚本,就可以直接用lua+脚本名直接运行,简单测试如下
可以用luac.exe来编译hello.lua的脚本,来保护我们的程序,编译完会生成一个 luac.out的文件,同样也可以用lua直接运行,不过已经是编译过的,别人已经无法随便修改、复制了
三、在Qt中用lua
1.配置
简单的新建一个Qt控制台程序--- luaTest,并配置连接lua载下来的lua53库,luaTest.pro文件配置如下
<span style="color: rgb(128, 0, 128);">DESTDIR</span><span style="color: rgb(192, 192, 192);"> </span>=<span style="color: rgb(192, 192, 192);"> </span>../luaTest/binary<pre style="margin: 0px; text-indent: 0px; -qt-block-indent: 0; -qt-paragraph-type: empty;">
QT += core
QT -= gui
TARGET = luaTest
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
LIBS += -L$$DESTDIR \
-llua53
SOURCES += main.cpp
HEADERS += \
lualib.h \
lua.h \
lauxlib.h
运行过程,会提示找不到lua的库,
拷贝库到binary目录下,就可以运行了,binary文件夹已配置在工程的同级目录生成下,也可以自己指定路径:
DESTDIR= ../luaTest/binary
2.下载源码点击打开链接,并从下载的源码中提取头文件:
http://www.lua.org/download.html
在工程目录,即和main.cpp的同级目录下中加入如下几个头文件:
在我们的项目中包含以上几个文件
HEADERS += \ lualib.h \ lua.h \ lauxlib.h
在binary目录下新建一个add.lua脚本文件,用来测试,脚本内容如下:
function add(x,y) return x + y end
在main.cpp中加载该脚本,完整代码如下:
#include <QCoreApplication>#include <QDebug>extern "C"{#include "lua.h"#include "lauxlib.h"#include "lualib.h"}lua_State *L;int luaadd(int x,int y){ int sum;/*the function name*/ lua_getglobal(L,"add");/*the first argument*/ lua_pushnumber(L,x);/*the second argument*/ lua_pushnumber(L,y);/*call the function with 2 arguments, return 1 result.*/ lua_call(L,2,1);/*get the result.*/ sum = (int)lua_tonumber(L,-1);/*cleanup the return*/ lua_pop(L,1); return sum;}int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); /* create state */ L = luaL_newstate(); /*load Lua base libraries*/ luaL_openlibs(L); /*load the script*/ luaL_dofile(L,"add.lua"); /*call the add function*/ int sum = luaadd(10,15); /*print the result*/ qDebug()<<"sum:"<<sum; /*cleanup Lua*/ lua_close(L); return a.exec();}
运行结果如下:
自此,已经成功的在Qt中加载lua脚本
- windows下Qt与lua结合简单介绍
- lua与c++结合
- Lua与VC6结合
- lua与c++结合
- 简单介绍下Windows CE
- Windows下SVN与Apache结合
- windows下将php与mysql结合
- windows下将php与mysql结合
- Windows下Qt程序简单打包发布
- OSG 与QT 结合
- OSG 与QT 结合
- osg与qt结合
- protobuf 与lua的结合
- Lua 的简单介绍
- Lua 的简单介绍
- Windows下Elasticsearch环境搭建并结合Python简单使用
- struts与velocity结合的简单介绍--找棵树吊死
- 【XHProf】简单介绍和 Windows下使用
- 深入 Java 调试体系,第 2 部分: JVMTI 和 Agent 实现
- 深入 Java 调试体系,第 3 部分: JDWP 协议及实现
- 深入 Java 调试体系,第 4 部分: Java 调试接口(JDI)
- 在rials 中使用bootstrap 的modal对话框 实现一个弹窗显示多层次内容的方法
- KE02 实现一次硬件触发转换多个通道
- windows下Qt与lua结合简单介绍
- 使用 Java Debug Interface(JDI)调试多线程应用程序
- 通信系统调制解调基本原理
- Oracle学习笔记[1]----Oracle简介、安装与卸载
- 11_Android中HttpClient的应用,读取网络xml及xml解析流,Handler的应用,LayoutInflater的使用,SmartImageView的使用
- 写给在路上的自己
- 【UNIX网络编程学习】线程特定数据
- mongodb查询
- 10个免费的服务器监控工具