VC要编译LUA文件必须先配置VC编程环境。。我用的是VC6.0,lua 5.1.4版
首先将lua的"lua.h" ,"lualib.h", "lauxlib.h" 这三个放在vc程序include文件夹下
然后将lua的lua5.1.lib放在lib文件夹下就OK了
下面看看我写的一个小例子:
a.cpp
- #include "windows.h"
- extern "C"{
- #include "lua.h"
- #include "lualib.h"
- #include "lauxlib.h"
- }
- #pragma comment(lib,"lua5.1.lib")
- lua_State * L;
- static int clib(lua_State *L) //给lua调用的c函数必须定义成static int XXX(lua_State *L)
- {
- char path[MAX_PATH];
- GetCurrentDirectory(MAX_PATH,path);
- lua_pushstring(L,path);
- return 1; //为什么要返回1?这是有依据的,该函数把结果压入了栈,lua调用该函数将从栈中
- //取1个结果
- }
- int main ( int argc, char *argv[] )
- {
- int sum;
- //创建一个指向lua解释器的指针
- L = luaL_newstate();
- //加载lua标准库
- luaL_openlibs(L);
- //注册C++函数
- lua_register(L,"clib",clib);
- //加载脚本
- luaL_dofile(L,"4.lua");
- //调用函数
- lua_getglobal(L,"run");
- //运行函数并把结果压入栈
- lua_pcall(L,0,0,0);
- //关闭并释放资源
- lua_close(L);
- return 0;
- }
LUA文件
- function run()
- print("call running from c")
- print(clib())
- end
http://blog.csdn.net/chinazhd/article/details/7772316