> 文章列表 > 12、Qt生成dll方式-libs方式使用

12、Qt生成dll方式-libs方式使用

12、Qt生成dll方式-libs方式使用

Qt创建dll,使用LIBS += -L$PWD -lxxx的方式调用dll

一、创建项目

1、打开Qt->新建文件->其他项目->Empty qmake Project->Choose...

 2、输入项目名->选择位置->下一步

 3、MinGW->下一步

 4、默认,完成

5、在.pro中添加TEMPLATE = subdirs,点击右下角小锤子进行构建

二、生成dll

 1、创建生成dll的子项目,右击“dllDemo”->新子项目

 2、Library->C++库->Choose...

3、共享库->输入子项目名称->下一步

 4、选择自己需要的模块->下一步

5、输入类名,更改.h和.cpp名->下一步

6、默认->完成

7、在AddDll.h中声明函数

 int sumFunc(int, int); 

8、在AddDll.cpp定义函数

int AddDll::sumFunc(int num1, int num2)
{return (num1 + num2);
}

9、点击右下角小锤子构建项目

10、生成目录中生成dll

 三、使用dll

 1、创建使用dll的子项目,右击dllDemo->新子项目

2、Application->Qt Widgets Application->Choose

3、输入子项目名->下一步

 4、输入类名->下一步

 5、默认,完成

 6、把刚才声明的addDll.dll拷贝到addUse工程下 

7、右击addUse->添加现有文件->添加addDll目录中的AddDll.h和adddll_global.h

 8、addUse.pro中添加LIBS +=-L$PWD -laddDll,并构建

 9、MainWindow.h中添加AddDll.h头文件,创建AddDll对象

 10、进行界面设计,更改控件的objectName 

 11、MainWindow.cpp中添加代码

int num1 = ui->num1Edit->text().toInt();
int num2 = ui->num2Edit->text().toInt();int sum = m_addDll.sumFunc(num1, num2);
ui->addEdit->setText(QString::number(sum));

 12、右击addUse->运行

如果程序卡死,关闭Qt,重新打开Qt再运行程序;

注:程序卡死原因,生成dll的程序构建完成没有关闭,dll处于打开状态,不能被调用

 13、输入被加数、加数,点击求和