lua調c動態庫

2021-04-18 12:30:12 字數 771 閱讀 5885

lua

指令碼調c

動態庫函式時開始調不成功,通過

lua官方的

mail list

才知道:

c動態庫里的註冊函式和

lua指令碼的開啟庫的方式要一致。 1.

c動態庫的**:

static int lua_msgbox(lua_state* l)

int __declspec(dllexport) luaopen_dllforlua(lua_state* l)

使用lua_register

函式,則

lua指令碼應該寫成:

dllforlua = package.loadlib("dllforlua.dll", "luaopen_dllforlua")

dllforlua()

msgbox("hey, it worked!", "lua message box")

2. static int lua_msgbox(lua_state* l)

static const  lual_reg mylib = ,

};

int __declspec(dllexport) luaopen_dllforlua(lua_state* l)

使用lual_register

函式,則

lua指令碼應該寫成:

require("dllforlua")

dllforlua.msgbox("hey, it worked!", "lua message box")

Lua指令碼呼叫C 動態庫

前言 又是n久沒上來了,也沒什麼新鮮話想說。反正最近是被杭州的房價憋得抑鬱,但是也是只能對自己說要 蛋腚 今天又被這個lua呼叫dll給抑鬱了一把,還好網上搜來搜去,終於搜到一位 有識之士 的帖子,幫我搞定了這個 憋屈 的問題。最近很懶,懶得寫東西。lua呼叫c的dll的例子網上也不是很多,其實要說...

編譯lua動態庫

編譯lua直譯器的時候要依賴於lua動態庫來編譯,不能編譯成靜態的,否則在呼叫c模組的時候就會出現 multiple lua vms detected 的錯誤。multiple lua vms detected 什麼意思呢,就是說有多個虛擬機器載入,起衝突了。如果lua用靜態來編譯,就會載入乙個虛擬...

QT調VS動態庫

在qt使用vs編譯的動態庫 前段時間專案中遇到在qt中呼叫vs2005封裝的動態庫,無源 的情況下,我得到了乙個動態庫和原始碼,包括介面檔案 介面檔案中的void init 函式多次過載,但是在qt中只使用到了乙個init函式,當我嘗試呼叫這個dll時,我發現我的初始化函式會出現這樣和那樣的錯誤,直...