LuaとC++の簡単なインタラクション
1412 ワード
// test.cpp : 。
//
#include "stdafx.h"
extern "C"
{
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
static int print(lua_State* L)
{
/* lua */
int sum = lua_tointeger(L, 1); // Lua C , index=1 。
/* lua*/
lua_pushnumber(L, sum);
return 1;
}
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(); // .0 Lua, luaL_newstate
/* */
//lua_pushcfunction(L, print);
/* */
//lua_setglobal(L, "myPrint");
lua_register(L, "myPrint", print); //
/* add.lua */
luaL_dofile(L, "lua/Init.lua");
// lua
sum = luaadd( 200, 50 );
printf("sum=%d
",sum);
return 0;
}
//lua/Init.lua
/*
function add(x, y)
-- c , c push
sum = myPrint(x+y)
return sum
end
function sub(x, y)
return x - y
end
*/