1. 包含頭文件 #include<dlfcn.h>
2. 函數(shù)定義 void *dlsym(void *handle, const char* symbol);
handle是使用dlopen函數(shù)之后返回的句柄,symbol是要求獲取的函數(shù)的名稱,函數(shù),返回值是void*,指向函數(shù)的地址,供調(diào)用使用
dlsym與dlopen的以如下例子解釋?zhuān)?/p>
#include<dlfcn.h>
void * handle = dlopen("./testListDB.so",RTLD_LAZY);
如果createListDB函數(shù)定義為int32_t createListDB(std::string);
那么dlsym的用法則為:int32_t (*create_listDB)(std::string) = reinterpret_cast<int32_t (*)(std::string)>(dlsym(handle, "createListDB"))
createListDB庫(kù)函數(shù)的定義要用extern來(lái)聲明,這樣在主函數(shù)中才能通過(guò)createListDB來(lái)查找函數(shù),
學(xué)習(xí)無(wú)他法,唯有持之以恒
浙公網(wǎng)安備 33010602011771號(hào)