#include "stdafx.h"
extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" }
lua_State* L;
int luaadd ( int x, int y ) { int sum; /**//* lua中的函数 */ lua_getglobal(L, "add"); /**//* 压入虚拟栈的第一个值 */ lua_pushnumber(L, x); /**//* 第二个值 */ lua_pushnumber(L, y); /**//* 调用传入的两个值,并返回一个结果 */ lua_call(L, 2, 1); /**//*得到结果 ,由于返回类型不同 这里要显示的强制转换*/ sum = (int)lua_tointeger(L, -1); lua_pop(L, 1); return sum; }
int _tmain(int argc, _TCHAR* argv[]) {
int sum; /**//* Lua初始化*/ L = lua_open(); /**//*加载lua基本库 */ luaL_openlibs(L); /**//*加载文件add.lua */ luaL_dofile(L, "add.lua"); /**//* 调用加法的方法 */ sum = luaadd( 200, 50 ); /**//*打印结果 */ printf( "The sum is %d\n", sum ); lua_close(L); printf( "Press enter to exit" ); getchar(); return 0; }
5.cpp文件如下:
|