iphone開發中使用動態庫 dylib 和

2021-06-23 08:30:53 字數 1298 閱讀 8840

iphone

上使用動態庫的多為

dylib

檔案,這些檔案使用標準的

dlopen

方式來使用是可以的。那相同的在使用

framework

檔案也可以當做動態庫的方式來動態載入,這樣就可以比較自由的使用

私有的framework了。

dlopen

是開啟庫檔案

dlsym

是獲取函式位址

dlclose

是關閉。

當然,要使用這種方式也是有明顯缺陷的,那就是你要知道函式名和引數,否則無法繼續。

私有庫的標頭檔案可以使用

class dump

的方式匯出來,這個詳細的就需要

google

了。下面是兩個使用的例子

1: 這是使用

coretelephony.framework

獲取imsi

#define private_path  "/system/library/privateframeworks/coretelephony.framework/coretelephony"

// implement viewdidload to do additional setup after loading the view, typically from a nib.

- (void)viewdidload

2:這是使用

springboardservices.framework

來設定飛行模式開關

mach_port_t *theport;

void *uikit = dlopen(uikitpath, rtld_lazy);

int (*sbsspringboardserverport)() = dlsym(uikit, "sbsspringboardserverport");

theport = (mach_port_t *)sbsspringboardserverport(); 

dlclose(uikit);

// link to sbsetairplanemodeenabled

void *sbserv = dlopen(sbservpath, rtld_lazy);

int (*setapmode)(mach_port_t* port, bool status) = dlsym(sbserv, "sbsetairplanemodeenabled");

setapmode(theport, status);

dlclose(sbserv);

}#endif

python中使用動態庫

首先,建立乙個簡單的動態庫 程式設計生成dll.so gcc fpic o2 shared dll.c o dll.so c檔案 dll.c 如下 include struct param void print0 struct param arg void print2 struct param a...

Iphone中使用FMDB框架

1 首先得例項化乙個fmdatabase物件,這跟sqlitepersistentobjects 派生乙個子類進行操作是不同。接著開啟乙個資料庫 如果沒有會建立乙個資料庫 view plain paths ios下document路徑,document為ios中可讀寫的資料夾 nsarray pat...

使用cocos2d開發iphone遊戲入門概念

簡介 cocos2d iphone是乙個開源框架,利用它可以非常容易的在iphone上開發2d遊戲。它提供了物理,精靈 sprites 時差卷軸 parallax scrolling 支援iphone touch和accelerator等很多功能。一點說明 這一系列文章,翻譯自cocos2d的wik...