print(os.date())
print("call c func in lua ------the sum is:",fun_c(1,2))
function sum(x,y)
return x+y
end
=====================================================================================
//
// Filename: t.c
//
// Description: lua test
//
// Version: 1.0
// Created: 2013年03月22日 20时30分36秒
// Revision: none
// Compiler: g++
//
// Author: Li Weijian (), lwj1396@163.com
// Company:
//
// =====================================================================================
#include<stdio.h>
#include<lua.h>
#include<lauxlib.h>
#include<lualib.h>
int fun_c(lua_State *L)
{
int sum = luaL_checkint(L,1)+luaL_checkint(L,2);
lua_pushnumber(L,sum);
return 1;
}
int main()
{
lua_State *L = luaL_newstate();
luaL_openlibs(L);
lua_register(L,"fun_c",fun_c);
luaL_dofile(L,"helloworld.lua");
//call lua func in c
lua_getglobal(L, "sum");
lua_pushnumber(L, 4); // 参数一入栈
lua_pushnumber(L, 5); // 参数二入栈
// 这里的2,1表示两个输入参数,一个返回值
lua_call(L, 2, 1);
int sum = lua_tonumber(L, -1);
lua_pop(L, 1);// 将返回值出栈,恢复栈中的元素
printf("call lua func in c----sum is %d\n",sum);
lua_close(L);
return 0;
}