VS2012+LUA环境搭建

1 、启动VS2012,选择C++下的"win32"项目类型中的"Win2控制台应用程序"

2、工具——选项——项目和解决方案——VC++目录——可执行程序(C:\Program Files\Lua\5.1);包含文件(C:\Program Files\Lua\5.1\include);库文件(C:\Program Files\Lua\5.1\lib);项目——'项目名'属性 子菜单——配置属性——链接器——输入——附加依赖项(lua51.lib lua5.1.lib)

#include "stdafx.h"

#include

#include

extern "C"

{

#include "lua.h"

#include "lauxlib.h"

#include "lualib.h"

}

#pragma comment(lib, "lua51.lib")

头文件lua.h定义了lua提供的基础函数,包括创建lua环境、调用lua函数(如lua_pcall)、读写lua环境中全局变量,以及注册供lua调用的新函数等。Lua.h中定义所有内容都有一个lua_前缀。

头文件lauxlib.h定义了辅助库(auxiliary library,auxlib)提供的函数。它的所有定义都以luaL_开头(如luaL_loadbuffer)。辅助库是一个使用lua.h中API编写出的一个较高的抽象层。Lua的所有标准库编写都用到了辅助库。

注意:Lua脚本的编译执行是相互独立的,在不同的线程上执 行。通过luaL_newstate()函数可以申请一个虚拟机,返回指针类型lua_State。今后其他所有Lua Api函数的调用都需要此指针作为第一参数,用来指定某个虚拟机。所以lua_State代表一个lua虚拟机对像,luaL_newstate()分配 一个虚拟机。lua类库管理着所有的虚拟机。销毁指定虚拟机的所有对像(如果有垃圾回收相关的无方法则会调用该方法)并收回所有由该虚拟机动态分配产生的 内存,在有些平台下我们不需要调用此函数,因为当主程序退出时,资源会被自然的释放掉,但是但一个长时间运行的程序,比如后台运行的web服务器,需要立 即回收虚拟机资源以避免内存过高占用。

搭建编程环境的步骤和使用其他第三方C库没有什么区别,先设置好lua的3个头文件的路径,和一个lib 的路径,然后编写C代码。
你肯定已经看过相关的手册了,正确初始化lua_State以后,可以使用luaL_dofile执行磁盘上的lua脚本文件,也可以使用luaL_dostring执行脚本片段。后者相当于JScript里面的eval()函数,可以执行lua脚本文件中的全部或某一个特定部分。
如果担心找不到,就把它们放在同一个文件夹下,require会默认搜索包括当前路径下的lua、clibs文件夹