C++和Lua的交互调用
来源:互联网 发布:淘宝抢购秒杀怎么抢 编辑:程序博客网 时间:2024/05/19 23:00
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">新建一个Quick工程,用Xcode编译软件打开</span>
- 在此处新建一个C++文件
- 在Test.h里面引入三个头文件,添加一些方法
<pre name="code" class="cpp">#include <stdio.h>#include "cocos2d.h"#include <string>USING_NS_CC;extern "C"{#include "lua.h"#include "lualib.h"#include "lauxlib.h"}class Test { public: Test(); void fangwenbianlian(); void loadFunction(); static int l_show(lua_State * l); ~Test();private: lua_State *luatest;};
4.Test.cpp.每个方法都有详细注释,应该看得懂#include "Test.h"Test::Test(){ //声明一个指针 luatest =luaL_newstate(); //打开Lua库 luaL_openlibs(luatest); //压入函数, lua_pushcfunction(luatest, l_show); lua_setglobal(luatest, "l_show"); //加载Lua文件 std::string path = FileUtils::getInstance() -> fullPathForFilename("Mylua.lua"); luaL_dofile(luatest,path.c_str()); lua_pcall(luatest, 0, 0, -1); //测试函数 fangwenbianlian(); loadFunction(); }//访问Lua里的变量 void Test::fangwenbianlian(){ lua_pcall(luatest, 0, 0, -1); CCAssert(luatest,"文件读取错误!!"); lua_getglobal(luatest, "username"); char * rlt = (char*)lua_tostring(luatest, -1); CCLOG("username is:%s",rlt); }//访问Lua里的函数void Test::loadFunction(){ lua_getglobal(luatest, "getrlt"); lua_pushnumber(luatest, 12); lua_pcall(luatest,1, 2, -1); CCAssert(luatest,"文件读取错误!!"); char *rlt = (char*)lua_tostring(luatest, -1); char *rlt1 = (char*)lua_tostring(luatest, -2); CCLOG("rlt ==>%s",rlt); CCLOG("rlt ==>%s",rlt1); }int Test:: l_show(lua_State * l){ lua_pushstring(l, "C++函数里的内容"); return 1;}Test::~Test(){ if (luatest) { delete luatest; luatest=NULL; }}
5.同个目录下新建一个简单的Lua文件
6.
Lua文件里写入print("Test My Lua!")username = "ChenApple" function getrlt(x)print("hungjinhui") print("传进来的参数为:" ..x)return "OK","YES"endprint("我调了C++函数 " .. l_show())
7.最后一步,也是最重要的,
在AppDelegate.cpp,引入Test.h头文件.然后在bool AppDelegate::applicationDidFinishLaunching()函数里
实例一个Test对象
Test *test =new Test();
以上就是一个小Demo
0 0
- lua和c的交互
- lua和c的交互
- lua和c的交互
- lua和c的交互
- lua和c的交互
- lua和c的交互
- lua和c的交互
- lua和c的交互
- lua和c的交互
- lua和c的交互
- lua和c的交互
- C++和Lua的交互调用
- C和lua交互
- lua和C交互
- C/C++和Lua的交互
- Lua和C/C++的交互
- Lua和C语言的交互
- Lua和C之间的交互
- 九度 Online Judge 算法 刷题 题目1055:数组逆置
- 购物车移动端开发体会
- 这是打印日志嘛
- 最长公共字串与公共子序列
- 10个iOS面试问题,面试者轻松自如
- C++和Lua的交互调用
- Openstack-Ceilometer-获取主机内存 的使用
- Linux 默认路由表 0.0.0.0
- Selendroid test-app的实例总结
- hibernate学习(一)
- MongoDB 增加configsvr服务节点
- 线段树
- UI-父视图和子视图之间的关系
- Java类的初始化、继承