首先配置一下 VS2010
新建一个win32控制台应用程序LuaTest,属性->配置属性->VC++目录
可执行文件目录添加 E:\Tools\5.1;
包含目录 添加 E:\Tools\5.1\include;
库目录添加 E:\Tools\5.1\lib;
然后再链接器-》输入添加 lua51.lib;lua5.1.lib;
剩下编译运行就可以了
LuaTest.cpp
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <stdio.h>
extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
lua_State *L;
// lua 调 c++
static int average(lua_State *L)
{
int n = lua_gettop(L);
double sum = 0;
int i;
for (i=1 ;i<= n; i++) {
if(!lua_isnumber(L,i)){
lua_pushstring(L,"Incorrect argument to 'average'");
lua_error(L);
}
printf("%lf\n",lua_tonumber(L,i));
sum += lua_tonumber(L,i);
}
lua_pushnumber(L,sum/n);
lua_pushnumber(L,sum);
return 2;
}
//c++ 调 lua
int luaadd(int a,int b)
{
int sum;
lua_getglobal(L,"add");
lua_pushnumber(L,a);
lua_pushnumber(L,b);
lua_call(L,2,3);
sum = (int)(lua_tonumber(L,-1));
lua_pop(L,1);
return sum;
}
int main(int argc,char * argv[])
{
L = lua_open();
luaL_openlibs(L);
lua_register(L,"average",average);
luaL_dofile(L,"test.lua");
lua_getglobal(L,"avg");
cout<<"avg is:"<<lua_tointeger(L,-1)<<endl;
printf("the sum is %d",luaadd(10,15));
lua_close(L);
system("pause");
return 0;
}
function add(a,b)
avg,sum = average(10,20,30,40,50)
print("The average is:",avg)
print("The sum is:",sum)
return a,b,a+b
end