Qt 学习笔记:动态加载共享库
共享库(Shared Library)是一种用于在程序运行时动态加载的二进制代码库,便于代码重用和升级。在一些大型软件项目中,将功能封装在共享库中,可以让主程序更加简洁清晰,同时也方便对某些功能进行升级和维护。
在 Qt 中,使用 QLibrary 类可以方便地动态加载共享库并获取其中的函数指针,从而实现动态调用共享库中的函数。以下是一个简单的示例代码:
#include <QLibrary>
#include <QDebug>
int main(int argc, char *argv[])
{
QLibrary lib("mylib"); // 加载名为 mylib 的共享库
if (lib.load()) {
typedef void (*HelloFunc)();
HelloFunc hello = (HelloFunc) lib.resolve("hello"); // 获取共享库中的 hello 函数指针
if (hello) {
hello(); // 调用 hello 函数
} else {
qWarning() << lib.errorString();
}
lib.unload(); // 卸载共享库