文档章节

lua与C++的交互

水水鱼
 水水鱼
发布于 2015/02/27 11:28
字数 362
阅读 176
收藏 3
点赞 0
评论 0

参考文档地址:

Lua 与C交互 

项目名字:SimFrame

项目语言:C++,lua(5.1)

项目框架:Cocos2d-x 2.2.3

一.创建项目

首先 cd到cocos2d-x包下的tools中的project-creator目录,输入

./create_project.py -project SimFrame -package com.zyl.test -language lua

projects目录下会有一个SimFrame的项目,打开SimFrame.xcodeproj(我用的是mac,xcode)

二.项目入口

找到Classes下面的AppDelegate.cpp文件

在 bool AppDelegate::applicationDidFinishLaunching()方法中有一句

std::string path = CCFileUtils::sharedFileUtils()->fullPathForFilename("hello.lua");
pEngine->executeScriptFile(path.c_str());

这个就是运行hello.lua

三.lua调用C++的函数

在AppDelegate.cpp文件中 新加一个自己的测试方法,如下

static int mytest(lua_State *L)
{
    int n = lua_gettop(L);  //获取当前lua的堆栈中的参数个数
    printf("args nums is %i \n",n);
    //
    printf(" arg is %f \n" , lua_tonumber(L,2)); //打印当前堆栈中第二个参数,并且转换成number类型(float)
    //
    return NULL;
}

注册方法如下:(在运行lua之前初始化即可)

lua_State *tolua_s = pStack->getLuaState();
lua_register(tolua_s, "mytestf", mytest);//1.lua堆栈 2.lua中映射的方法名字 3.c++定义的方法

lua中调用(在hello.lua中function main()调用即可)

mytestf(1,99,3,4)

输出

args nums is 4 
 arg is 99.000000

这说明调用成功了,这里只是小试牛刀,上面有lua和c的交互的参考文档,大家可以详细的看看,此处不再写c++调用lua了。

后续会加上使用tolua++编译pkg,从而创建自定义类让Lua脚本使用(绑定c++的类)

© 著作权归作者所有

共有 人打赏支持
水水鱼
粉丝 8
博文 12
码字总数 7718
作品 0
海淀
用LuaBridge为Lua绑定C/C++对象

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

shezjl
2015/10/26
0
0
(转)LUA与python根本就不具有可比性

网上经常看到别人拿lua与python来进行对比,但是,本人认为,lua与python根本就不具有可比性.原因如下: 1、两者的定位不同。python的定位在于自身的独立开发,即是说python定位于自己能解决所有...

Yisen
2011/06/27
0
3
cocos2dx 3.x win7+VS2012开发环境搭建及HelloWorld

准备工作 (1)VS2012 (2)cocos2dx cn.cocos2d-x.org/download (3)python 新版本的cocos2dx 需要python编译 2. 安装软件 (1)VS2012 从官网下载并安装 (2)python 安装:下载地址: ww...

simpower
2015/07/29
0
0
Cocos2d-x中关于lua的坑

上周在项目开发中遇到一个奇怪的问题,某个c++模块解压完的字节流数据传递给lua后,lua在做基于字节流的反序列化时始终出错,刚开始以为是不是c++模块读取出来的字节流有问题,但是debug发现,c+...

pigsoldier
2014/07/06
0
0
C/C++和Lua是如何进行通信的?

为了实现Lua和其他语言之间的通信,Lua虚拟机为C/C++提供了两个特性: 一,LuaState状态机 luaState主要是管理一个lua虚拟机的执行环境, 一个lua虚拟机可以有多个执行环境。Lua虚拟机通过维护...

borey
2014/09/17
0
10
分享使用Lua设计基于组件的游戏架构的经验

作者:Wei Ciao Jheng 在成为iOS开发者以前,我是一家制作MMO的公司的游戏程序员。我最擅长也最喜欢的编程语言是C++和Lua。作为游戏开发者,我曾经深入挖掘Lua的潜力,并用它制作了一个游戏框...

ChildhoodAndy
2013/07/05
0
0
Windows平台下C/C++和Lua的相互调用

Lua for Windows 开始学习Lua编程 Windows平台下的C++调用Lua tolua++ 1.0.93集成C/C++和Lua代码的工具 tolua++ - Reference Manual...

klaus丶
2014/05/19
0
5
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
0
0
开源图形库 c语言-开源C++库

开源C++库必须具有以下特点:必须是成熟的产品、跨平台的产品、相对通用的库。   一、通用标准类   STL:C++标准模板库,呵呵,它也是开源的嘛。   boost:C++准标准库,它是强大地,江...

mickelfeng
2013/01/03
0
0
C\C++编译器的未来.我们还需要C++么?

在未来我们还需要纯C++开发模式么? 随着C++11的诞生,C++已经越来越臃肿,从03的时候就觉得C++实在是太复杂了。以一个合格C++程序员的标准来简单的来说3-5年略有小成,5-8年才可以说自己是个合格...

七液
2013/04/03
0
22

没有更多内容

加载失败,请刷新页面

加载更多

下一页

mysql导入导出包括函数或者存储过程

mysql导入导出包括函数或者存储过程 2012-11-16 10:12:20 0个评论 收藏 我要投稿 mysql导入导出包括函数或者存储过程 1.mysql导出整个数据库 mysqldump -h hostname -u username -p databas...

rootliu
4分钟前
0
0
Hyperledger Fabric 客户端开发一

前面介绍了hyperledger Fabric 安装, Chaincode的开发和运维, 现在来说说hyperledger fabric的客户端相关的开发。hyperledger 的客户端开发, 实际上指的是Chaincode的客户端开发。 同传统...

十一月不远
8分钟前
0
0
第18章 Linux集群架构

keepalived介绍 在这里使用keepalived来实现高可用集群,因为heartbeat在centos6上有一些问题,影响实验效果 heartbeat 切换的时候,会不是很及时——>比如:主 已经宕机了,但 从 却一直启动...

Linux学习笔记
9分钟前
0
0
awk常用的几条命令组合

前言 最近在生产上查问题,也是练就了一下awk的命令。 生产上的数据安全性要求比较高,一般要拿到测试环境都需要脱敏,但是脱敏的数据会有很多程序上的不适应。 所以有时候查询问题,查询一条...

码代码的小司机
9分钟前
0
0
python 多版本安装及切换

1.安装必要的扩展 # yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-de 2.下载python3.7源码 # wget https://www.python.org/ftp/python......

青-争
10分钟前
0
0
看看8年阿里架构师怎样讲述Dubbo和Spring Cloud微服务架构

微服务架构是互联网很热门的话题,是互联网技术发展的必然结果。它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。虽然微服务架构没有公认的技术标...

Java大蜗牛
10分钟前
0
0
CDH的坑之Sqoop导出数据到MySQL

CDH的坑之Sqoop导出数据到MySQL 最近使用Sqoop从Hive导出数据到MySQL中,出现了一系列的问题,下面将这个问题记录一下,避免再度踩坑! 导出语句 sqoop export --connect jdbc:mysql://192....

星汉
13分钟前
0
0
PowerDesigner连接MySQL和逆向工程图

最近想梳理公司项目的表间关系,从项目后台管理系统的操作入手,以及代码的hibernate注解入手,都不算特别尽人意,于是最后还是鼓捣了一下PowerDesigner的逆向工程图,这样更直观一些。 想着...

Oo若离oO
14分钟前
0
0
威胁web应用安全的错误

一般绝大部分的web应用攻击都是没特定目标的大范围漏洞扫描,只有少数攻击确实是为入侵特定目标而进行的针对性尝试。这两种攻击都非常频繁,难以准确检测出来,许多网站的web应用防火墙都无法...

上树的熊
16分钟前
2
0
pypy2 install crypto error

install pycryptodome instead pip install pycryptodome

coord
20分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部