您的位置:首页 > 编程语言 > Lua

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使用的完整工程
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: