国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > 綜合 > 正文

Lua中的動(dòng)態(tài)鏈接實(shí)例

2024-07-21 23:04:07
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

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

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

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

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

 作為一個(gè)簡(jiǎn)單的實(shí)例:

 

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

hello.c
#include<stdio.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ù)比較簡(jiǎn)單,沒(méi)有參數(shù),沒(méi)有返回值,具體的接口規(guī)范還需研究。

 
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 娱乐| 陆丰市| 扶风县| 阿图什市| 民县| 丘北县| 敖汉旗| 新平| 阳曲县| 淮安市| 盘山县| 沙坪坝区| 桑植县| 陆丰市| 呈贡县| 凤台县| 遂宁市| 化隆| 宁都县| 宁蒗| 新巴尔虎左旗| 博爱县| 沭阳县| 临泽县| 平山县| 额敏县| 神农架林区| 顺义区| 小金县| 宁化县| 岐山县| 长泰县| 应城市| 岚皋县| 蕲春县| 南宫市| 柏乡县| 囊谦县| 曲麻莱县| 格尔木市| 永德县|