lua_VC6环境
Posted CppSkill
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lua_VC6环境相关的知识,希望对你有一定的参考价值。
1、
下载得到 lua-5.1.4.tar.gz,解压得到 文件夹"lua-5.1.4"
2、
视频[02:00]
将 lua-5.1.4/etc/luavs.bat 复制到 lua-5.1.4/ 下,然后才能够正常的编译,[02:08]双击执行lua-5.1.4/luavs.bat(ZC:我还是放到cmd下来运行吧,可以看到相关信息)
ZC:编译生成的文件都是放在 lua-5.1.4/src中
3、
[02:53]编译OK之后,重要的是文件 lua-5.1.4/src/lua51.dll 和 lua-5.1.4/src/lua51.lib 。
[03:02]需要的是整个 目录"lua-5.1.4/src"
4、
[06:55]要使用 lua的话,首先要创建一个解释器的指针,是一个全局变量
[07:11]要用到这几个头文件:
extern "C"
{
#include "lua.h"
#include "lualib.h"
#include "luaxlib.h"
}
[07:22]∵ 它是用标准的纯C写的,所以需要加一个“extern "C"”
[07:47]需要用到 lua51.dll 和 lua51.lib
[10:40]定义 lua解释器的全局变量指针"lua_State *L;"
[10:47]还要进行初始化 [11:08]"L = lua_open();"
5、
[12:10]讲解 如何使用 lua解释器指针
[12:47]它的返回类型 必须是整形(ZC: 这里的"它"指的是谁?应该是指下面的 定义的用于注册到lua解释器中去的C++函数)
[13:00]参数类型必须是 lua_State*
[13:20]返回的一般是 数量,∴我们一般返回的是 1
[14:15]int = lua_tointeger(lua_State*, 参数idx); // ZC: 参数idx 从1开始计数
[15:07]函数必须是下面这样的样子:
int 函数名(lua_State* _pLua) // 这里只包含一个参数
{
... ...
return 1;
}
这样的菜蔬才能注册到lua的解释器里面去
[15:43]注册
[16:22] luaL_register(lua_State*, "在脚本里面定义的函数的名称", 实际的在C++中定义的函数的指针);
luaL_register(L, "F1F10", f1_f10);
[17:36]还需要包含一个东西进工程(否则编译通不过)
[18:16]lua的源码路径 ==> 加入到VC6-->Tools-->Options-->Dircttories--> "Show directories for:" 中的 "Include files"/"Executable files"/"Library files"/"Source files" [19:25]ZC: 又把这里做的事情去掉了...
[18:38]再次编译 还是不通过
[19:07]ZC: 卧槽,居然是函数名写错了...应该是 lua_register(lua_State*, "在脚本里面定义的函数的名称", 实际的在C++中定义的函数的指针); (多了个"L")
[20:45] luaL_dostring(lua_State*, "需要执行的字符串");
luaL_dostring(L, "F1F10()"); // [21:00]这里的参数个数[F1F10()的参数个数] 它是不关心的。
[21:06]字符串的大小写,一定要区分
[22:42]EDIT 的设置:属性中"Want return"、"Multiline"要勾选
[29:42]lua脚本不支持解释汉字
6、
以上是关于lua_VC6环境的主要内容,如果未能解决你的问题,请参考以下文章