Lua学习之3 :tolua++导出C++变量给Lua使用
2015-01-17 20:10
363 查看
一. 分享内容
主要分享如何使用tolua++导出C++中的变量,使Lua能够直接使用导出的C++变量。
二. 开始分享
在Lua学习之1:C++调用Lua函数和Lua学习之2
:Lua调用C++函数中学习了C++
和Lua之间的相互调用,知道了怎么暴露一个C++函数给Lua。然而,如果需要暴露给
Lua的C++函数巨多的话,那手工暴露的做法既麻烦又耗费时间。tolua++正是为解决
这种烦恼而诞生的一个工具。
tolua++主要包含2部分,一部分是bin(即tolua++.exe),另一部分是lib(即
tolua++.lib)。其详尽的工作原理可参考tolua++官网。下面是使用tolua++.exe和
tolua++.lib导出C++的变量给Lua使用的一个例子。
0.
生成tolua++.exe
下载的tolua++和lua应该是版本相对应的,tolua++1.0.93对应lua5.1。在tolua++
官网下载tolua++1.0.93。或者下载本文末尾的示例工程。Lua5.1的下载和编译可参考
Lua学习之1 :C++调用Lua函数。
下载到的tolua++1.0.93是一份VC工程,直接编译会出现一些Lua相关的头文件找不
到的错误,将包含的所有Lua头文件的路径改为正确路径即可。Lua头文件路径修改完成
后,编译工程,tolua++.exe生成在tolua++1.0.93\bin路径下。
1.
生成tolua++.lib
新建一个静态库工程tolua++lib,将tolua++1.0.93\src\lib下的.h和.c文件导入,
修改Lua相关的头文件路径后,编译工程,不出意外tolua++.lib被编译出来了。
2. 创建头文件
创建一个名为tvariable.h的头文件,导出一个int类型的变量 i:extern int i; 即t
variable.h内容编辑如下:
extern int i;
3. 创建.pkg文件
创建一个名为tvariable.pkg的文件,其内容编辑如下:
$#include "tvariable.h" extern int i;
4.
生成.cpp文件
在步骤0中,路径tolua++1.0.93\bin下有tolua++.exe,将lua51.dll也加入到该
路径下,这时该目录的文件应该包含的:tolua++.exe,lua51.dll,tvariable.h,
tvariable.pkg。然后在命令行中CD进入该目录,使用以下命令生成variable.cpp文件:
tolua++ -o tvariable.cpp tvariable.pkg
5. 创建Lua脚本
在Lua中只是简单的将C++中导出的变量 i 打印出来,即编辑tvariable.lua内容如下:
print( "tvariable i : " .. i )
6. 测试
新建一个控制台工程tests,将tvariable.h,tvariable.cpp,tvariable.lua加入工程。
在测试工程中,将 i 的设置为1024。
三. 完整的工程
tolua++导出C++变量给Lua使用的完整工程。相关文章推荐
- Quick-Cocos2d-x 使用tolua工具导出C++的类给Lua调用
- cocos2dx中注册导出c++函数供lua调用(使用tolua++)
- quick3.3使用tolua工具导出C++到lua所遇问题记录
- Quick-Cocos2d-x 使用tolua工具导出C++的类给Lua调用
- Quick-Cocos2d-x 使用tolua工具导出C++的类给Lua调用
- c++导出全局变量给lua使用
- Quick-Cocos2d-x 使用tolua工具导出C++的类给Lua调用
- Quick-Cocos2d-x 使用tolua工具导出C++的类给Lua调用
- Quick-Cocos2d-x 使用tolua工具导出C++的类给Lua调用
- Quick-Cocos2d-x 2.26 使用tolua工具导出C++的类给Lua调用WINDOWS篇
- 对“tolua++导出C++子类后在Lua中无法添加新成员”这一问题的初步分析【转】
- cocos2d-x中使用tolua++导出函数中传递字节流给lua使用的问题
- C/C++ (函数、变量和类)动态库的创建、导出和使用
- Cocos2dx学习笔记34 使用tolua++编译pkg,从而创建自定义类让Lua脚本使用
- 使用tolua++工具在Lua中使用C++自定义类
- 如何导出 C和C++ 的API 给 Lua 使用
- [置顶] quickcocos2dx修改c++源码,并且导出给lua使用。
- 导出 C/C++ API 给 Lua 使用
- 使用tolua++创建基于C/C++语言的lua脚本
- 导出 C/C++ API 给 Lua 使用(转)