天天看點

QT動态加載動态庫

QT動态加載動态庫

#include <stdio.h>
#include <QLibrary>

int main(int argc, char *argv[])
{
    QLibrary *hello_lib = NULL;

    hello_lib = new QLibrary("/home/libhello.so");
    
    //加載動态庫
    hello_lib->load();
    if (!hello_lib->isLoaded()) 
    {
        printf("load libhello.so failed!\n");
        return 0; 
    }
    
    //定義函數指針
    typedef void (*Fun)();
    
    //resolve得到庫中函數位址
    Fun hello = (Fun)hello_lib->resolve("hello");
    if (hello)
    {
        hello();
    }
    
    //解除安裝庫
    hello_lib->unload();
    return 0;
}
           

繼續閱讀