在C++中封裝動態庫的方法通常是通過使用extern "C"關鍵字將C++代碼中的函數聲明為C語言風格的函數,從而實現C++代碼與動態庫的兼容性。具體步驟如下:
extern "C" {
void myFunction();
}
g++ -shared -o myLibrary.so myCode.cpp
#include <iostream>
#include <dlfcn.h>
int main() {
void* handle = dlopen("myLibrary.so", RTLD_LAZY);
if (handle == NULL) {
std::cerr << "Failed to load library" << std::endl;
return 1;
}
void (*myFunction)() = (void (*)())dlsym(handle, "myFunction");
if (myFunction == NULL) {
std::cerr << "Failed to find function" << std::endl;
return 1;
}
myFunction();
dlclose(handle);
return 0;
}
通過以上步驟,就可以在C++中封裝動態庫并進行調用。