选出lua中的include 文件和lib文件。把lua5.1.lib复制到D:/Program Files/Microsoft Visual Studio/VC98/Lib下。并把include目录下的所有.h文件复制到D:/Program Files/Microsoft Visual Studio/VC98/Include下。
转自:http://blog.sina.com.cn/s/blog_65380c300100hfrk.html
.下载lua 5.1 VC++6.0 库
此目录下包含一个lua5.1.lib和一个include头文件目录。
include/目录下包含:
/lauxlib.h
/lua.h
/lua.hpp
/luaconf.h
/lualib.h
2.网上有很多的文件说在VC++的PROJEC--SETTING下增加lua的库和把头文件include包含进来,没有详细的说明。这里本个经过多次的摸索,作了详细的说明:
在安装好VC++6.0的情况下,把lua5.1.lib复制到安装好VC的lib目录下,我安装VC++在D盘,所以把lua5.1.lib复制到D:/Program Files/Microsoft Visual Studio/VC98/Lib下。并把include目录下的所有.h文件复制到D:/Program Files/Microsoft Visual Studio/VC98/Include下即可。
3.新建一个Win32 Console Application工程,如lua_add.cpp
在lua_add.cpp文件中增加
extern "C"{
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
和#pragma comment(lib,"lua5.1.lib") //这里lua5.1.lib必须与上面的是一样才行
做完这些就可以写main函数了。
完整的程序:
#include "stdafx.h"
#include "windows.h"
extern "C"{
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
#pragma comment(lib,"lua5.1.lib")
lua_State * L;
int luaadd ( int x, int y )
{
int sum;
//函数名
lua_getglobal(L, "add");
//第一个参数压栈
lua_pushnumber(L, x);
//第二个参数压栈
lua_pushnumber(L, y);
//调用函数
lua_call(L, 2, 1);
//得到返回值
sum = (int)lua_tonumber(L, -1);
lua_pop(L, 1);
return sum;
}
int main ( int argc, char *argv[] )
{
int sum;
//创建一个指向Lua解释器的指针。
L = lua_open();
//函数加载Lua库
luaL_openlibs(L);
//加载脚本
luaL_dofile(L,"add.lua");
//调用函数
sum = luaadd( 10, 11);
// print the result
printf( "The sum is %d/n", sum );
//关闭 释放资源
lua_close(L);
printf( "Press enter to exit!" );
getchar();
return 0;
}
注意到在main()函数中有luaL_dofile(L,"add.lua")语句,所以必须在lua_add工程目录下新增一个add.lua脚本语言,用记事本新建,录入的内容为:
function add ( x, y )
return x + y
end
完了之后保存为add.lua即可。