【发布时间】:2017-07-15 14:12:36
【问题描述】:
我找到了以下用于在 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;
【问题讨论】:
-
它是一个指向函数的指针。
-
所以我必须为我想调用的每个函数都这样做?
-
是的,你必须这样做。
-
所以我唯一的其他选择是在应用程序中使用库时让所有头文件可用?
-
如果你有dll,你可以生成.lib文件。
标签: c++ qt shared-libraries qlibrary