濮阳杆衣贸易有限公司

主頁 > 知識庫 > Lua中的動態(tài)鏈接實例

Lua中的動態(tài)鏈接實例

熱門標(biāo)簽:武漢百應(yīng)人工智能電銷機(jī)器人 電腦外呼系統(tǒng)輻射大嗎 開通400電話申請流程 如何利用高德地圖標(biāo)注家 百度地圖標(biāo)注位置網(wǎng)站 上海企業(yè)外呼系統(tǒng)排名 揚州電銷外呼系統(tǒng)軟件 400手機(jī)電話免費辦理 智能語音電銷的機(jī)器人

C語言應(yīng)用程序中經(jīng)常使用動態(tài)鏈接機(jī)制集成各個模塊;不過,動態(tài)鏈接機(jī)制并不是ANSI C標(biāo)準(zhǔn)的一部分,也就是說實現(xiàn)方法是不可以移植的。

Lua通常不會包含任何無法通過ANSI C來實現(xiàn)的機(jī)制,如果動態(tài)鏈接是一個例外。Lua打破了對可移植性的準(zhǔn)則,為幾種平臺實現(xiàn)了一套動態(tài)鏈接機(jī)制。

package.loadlib是動態(tài)鏈接功能的核心函數(shù),接收兩個參數(shù):動態(tài)庫的完整路徑名、函數(shù)名稱。

loadlib函數(shù)加載指定的庫,并將其鏈接入Lua;如你所想,并不會調(diào)用庫中的任何函數(shù),而是將一個C函數(shù)作為Lua函數(shù)返回;如果load過程中發(fā)生任何錯誤,返回nil。

loadlib是一個比較底層的函數(shù),通常使用require來加載C程序庫,這個函數(shù)會搜索指定的程序庫,然后調(diào)用loadlib來加載庫,并返回初始化函數(shù),這個初始化函數(shù)應(yīng)將庫中提供的函數(shù)注冊到Lua中。

 作為一個簡單的實例:

復(fù)制代碼 代碼如下:

hello.c
#includestdio.h>
 
void hello(){
printf("hello,world\n");
}

編譯:gcc -o libhello.so -fPIC -shared hello.c
復(fù)制代碼 代碼如下:

> f = package.loadlib('${pathhere}/libhello.so', 'hello')
> f()
hello,world

hello()函數(shù)比較簡單,沒有參數(shù),沒有返回值,具體的接口規(guī)范還需研究。

標(biāo)簽:新余 嘉峪關(guān) 武漢 黑龍江 宜賓 延邊 江西 張掖

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Lua中的動態(tài)鏈接實例》,本文關(guān)鍵詞  Lua,中的,動態(tài),鏈接,實例,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Lua中的動態(tài)鏈接實例》相關(guān)的同類信息!
  • 本頁收集關(guān)于Lua中的動態(tài)鏈接實例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    五台县| 潢川县| 左云县| 博罗县| 桃江县| 凤山县| 贵港市| 泰宁县| 万荣县| 历史| 邓州市| 兰坪| 通江县| 蒙阴县| 张家港市| 屏南县| 定安县| 镇安县| 武川县| 蒙阴县| 汉源县| 望谟县| 文水县| 和龙市| 开阳县| 曲松县| 梓潼县| 胶州市| 永城市| 雷波县| 五莲县| 杭锦后旗| 广西| 曲水县| 遂川县| 通化县| 应用必备| 东安县| 石泉县| 黄大仙区| 南宫市|