Qt软件开发文档3---mainAPP调用dllManager中函数

来源:互联网 发布:vb语言用处 编辑:程序博客网 时间:2024/06/05 03:38

1.mainWindow.h声明

//这个声明主要用于调用dllManager的 runFunc函数typedef bool *(*func)(QString,QString,void *,void *,void *);

这里写图片描述

//这个结构体用于接收函数的值struct ValTrans{    void *ptr;};

2.调用dllmanager runFunc

 dllName = "treeDll.dll"; funcName = "showTree";QWidget *tree = new QWidget(dock[0]);//setWidget调用dllmanager函数tree = setWidget(dllName,funcName);//将tree 添加到主界面中    dock[0]->setWidget(tree);    addDockWidget(Qt::LeftDockWidgetArea,dock[0]);

setWidget函数

QWidget* MainWindow::setWidget(QString dllName,QString funcName){    func open = (func)QLibrary::resolve("dllManager.dll","runFunc");    if(open){        ValTrans valT;        bool ok = open(dllName,funcName, this, &valT, 0);        if(ok){            QWidget *form = (QWidget *)valT.ptr;            return form;        }    }    else    {        QMessageBox::information(0, "open case", "can not open");    }    return 0;}

至此,调用dllManager函数基本完成.将Dll中的tree添加到了主界面中
(后期会进行优化.)
各部分封装dll 调用基本如此。
主界面
这里写图片描述

0 0
原创粉丝点击