使用QLibrary加载库

时间:2017-07-15 14:12:36

标签: c++ qt shared-libraries qlibrary

我在Qt中找到了以下用于加载库的代码,但我不完全理解它是如何工作的。有人可以向我解释:typedef int (*MyPrototype)(int, int);吗?

int r1 = 0;
QLibrary library("mathlib.so");
    if (!library.load())
        out << library.errorString() << endl;
    if (library.load())
        out << "library loaded" << endl;

    typedef int (*MyPrototype)(int, int);

    MyPrototype myFunction = (MyPrototype)library.resolve("add");
    if (myFunction)
        r1 = myFunction(a,b);
    else
        out << library.errorString() << endl;

1 个答案:

答案 0 :(得分:1)

所以或者dll有功能,我们想要使用它,所以我们可以如何调用它

int add(int in_iParam1, int in_iParam2)

定义函数类型

typedef int (*MyPrototype)(int, int);

寻找功能&#39;添加&#39;在so文件中

MyPrototype myFunction = (MyPrototype)library.resolve("add");

通话功能&#39>添加&#39;参数&#39; a&#39;和&#39; b&#39;并将结果发送到&#39; r1&#39;

r1 = myFunction(a,b);