lua和C語言互相調用的例子

以前都是看的lua腳本怎麼寫的,還有就是在以前的工做室仿照着寫。沒有真正懂LUA和C語言如何之間交互的。今天寫了一個例子安全

首先我要實現的功能計算兩個整數的和,就是x+y了。由於x和y是隨時變化的,我又不想在C程序裏修改,那麼就把這兩個參數放到lua腳原本傳遞。函數

那麼我是如何實現的呢?lua

第一步:搭建window環境,使用vs2005 這個東西在網上搜索一下吧,不少。spa

第二步:寫一下c函數的邏輯。code

//testlua.c

#include "stdafx.h"

#include <stdio.h>

extern "C" {

#include "lua.h"

#include "lualib.h"

#include "lauxlib.h"

}

lua_State* L;

int add(lua_State* L);


int add(lua_State* L)

{

//從L棧中取出索引爲1的數值,並檢查

int x = luaL_checkint(L,1);

//從L棧中取出索引爲2的數值,並檢查

int y = luaL_checkint(L,2);

printf("result:%dn",x+y);

return 1;

}


int _tmain(int argc, _TCHAR* argv[])

{

//初始化全局L

L = luaL_newstate();

//打開庫

luaL_openlibs(L);

//把函數壓入棧中

lua_pushcfunction(L, add);

//設置全局ADD

lua_setglobal(L, "ADD");

//加載咱們的lua腳本文件

if (luaL_loadfile(L,"E:workvsProjecttestLuamylua.lua"))

{

printf("errorn");

}

//安全檢查

lua_pcall(L,0,0,0);

//push進lua函數

lua_getglobal(L, "mylua");

lua_pcall(L,0,0,0);


printf("hello my luan");

return 0;

}

x下面是個人lua腳本代碼,很簡單blog

function mylua()
print("mylua")
ADD(1,2)
ADD(3,4)
end

ADD(1,2) 關聯到註冊到的add函數,把參數壓入了。索引

最後輸出結果爲:rem

看是否是很簡單啊get

相關文章
相關標籤/搜索