lua呼叫c程式

2021-10-10 12:33:43 字數 1218 閱讀 1729

鑑於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...