qt dll 显式

来源:互联网 发布:出门旅游必备软件 编辑:程序博客网 时间:2024/06/05 22:32

第一,建立dll









那个#include"testdll_global.h"永远不用变化。


在头文件中添加:

extern "C" TESTDLLSHARED_EXPORT int add(int a,int b);
注意此处根据工程名不同,可能不是 TESTDLLSHARED_EXPORT 
在cpp文件中添加:
int add(int a,int b)
{
    return a + b;
}

如下图:




release文件夹下面发现dll文件,如下图



第二,使用dll

新建一个正常工程,usedll。


其中代码具体如下。注意,我需要把相应dll文件拷贝到d:\\下面去。
void MainWindow::on_pushButton_clicked(){    typedef int (*Fun)(int,int); //定义函数指针,以备调用    QLibrary mylib("d:\\testdll.dll");   //声明所用到的dll文件    if (mylib.load())              //判断是否正确加载    {        QMessageBox::information(NULL,"OK","DLL load is OK!");    }    Fun add=(Fun)mylib.resolve("add");    //援引 add() 函数    int s1=9;    int s2=7;    if (add)                  //是否成功连接上 add() 函数    {        int result=add(s1,s2);      //这里函数指针调用dll中的 add() 函数        QString sresult=QString::number(result);        this->ui->label->setText(sresult);    }    else    {        QMessageBox::information(NULL,"NO","DLL is not loaded!");    }}

结果好使!!

原创粉丝点击