鑑於lua5.4版本取消了lual_register之後,網上教程的混亂,這裡以5.4版本為例,用lual_setfuncs來代替。
**如下:
#ifdef __cplusplus
extern
"c"#else
#include
#include
#include
#include
#endif
#include
#include
extern
"c"int
add(lua_state*l)
extern
"c"int
sub(lua_state*l)
static
const lual_reg mylibs=
,,};
extern
"c"__declspec
(dllexport)
intluaopen_mytestlib
(lua_state *l)
受到文章[2]的啟發,作者提到lual_setfuncs函式最後乙個引數的意思是告訴lua相關的引數位置,所以這裡因為沒有push,所以設為0才對。另外,需要新增額外一行lua_newtable(l);
lualib_api int
luaopen_mytest
(lua_state * l)
local mytest = require "mytestlib"
print
(mytest.
add(
1.0,
2.0)
)print
(mytest.
sub(
1.0,
2.0)
)
部分visual studio設定
lua與C(一) C呼叫lua
lua和c有兩種關係 一種是在lua中呼叫c的函式,c稱為庫 一種是c中呼叫lua,c就稱為應用程式 此時c中包含了lua的直譯器 c 部分 注意在c 中,通常要把lua的一些標頭檔案定義在extern c 中,因為他們是c語言實現的。1.作為應用程式呼叫lua char buffer print ...
Lua操作棧c呼叫lua
include stdafx.h int main 得到初始化棧大小 printf 初始化棧大小 d n lua gettop plua 開啟所有功能庫 lual openlibs plua 載入指令碼 lual dofile plua,test.lua 將指令碼中的add函式入棧 int ret ...
Lua的使用入門之在C 程式中呼叫lua函式1
學習lua將近半個月了,以前也了解過,只是沒有實際運用的環境。現在將自己這半個月來的心得寫下來。首先,要想在c 程式中作用lua指令碼,必須包含相應的lua標頭檔案,extern c 因為lua是基於c的,所以要使變數和 函式按照c語言方式編譯和連線 在你的編譯環境中要包含lua的標頭檔案,我的是l...