使用 QLibrary 加载库
Loading library with 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;
so或者dll有函数,我们要用,怎么调用
int add(int in_iParam1, int in_iParam2)
定义函数类型
typedef int (*MyPrototype)(int, int);
在so文件中寻找函数'add'
MyPrototype myFunction = (MyPrototype)library.resolve("add");
使用参数 'a' 和 'b' 调用函数 'add' 并将结果传给 'r1'
r1 = myFunction(a,b);
我发现了以下用于在 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;
so或者dll有函数,我们要用,怎么调用
int add(int in_iParam1, int in_iParam2)
定义函数类型
typedef int (*MyPrototype)(int, int);
在so文件中寻找函数'add'
MyPrototype myFunction = (MyPrototype)library.resolve("add");
使用参数 'a' 和 'b' 调用函数 'add' 并将结果传给 'r1'
r1 = myFunction(a,b);