QT编译插件,DLL

5 篇文章 0 订阅

如果写过原生态C++DLL开发,那么这里的东西相信基本就是熟悉和习惯就行了

QT写插件内部还是调用原生态的C++ dll调用的那一套API 。

现在使用QT 的API 创建使用dll

------------------------------------------------------------

创建DLL

步骤1:编写接口文件

#ifndef _SHOW_TIME_DLL_
#define _SHOW_TIME_DLL_
#include <QString>
#include <QtPlugin>//这个是必须的
class SHOWINTERFACE
{
public:
//SHOWINTERFACE(){}
virtual ~SHOWINTERFACE(){}
virtual QString show() = 0;//返回当前时间的字符串类型值
protected:
private:
};
QT_BEGIN_NAMESPACE
Q_DECLARE_INTERFACE(SHOWINTERFACE,"com.comtop.plugin.SHOWINTERFACE/1.0");
QT_END_NAMESPACE
#endif

步骤2:编写实现类

@·1 :头文件

#ifndef SHOWTIMEDLL_H
#define SHOWTIMEDLL_H
#include "showtimeinterface.h"
#include <QObject>
class  showtimedll:public  QObject, SHOWINTERFACE
{
Q_OBJECT
Q_INTERFACES(SHOWINTERFACE)
public:
showtimedll();
~showtimedll();
virtual QString show();
private:
};
#endif // SHOWTIMEDLL_H

@2:编写实现类CPP

#include "showtimedll.h"
#include <QDateTime>
showtimedll::showtimedll()
{
}
showtimedll::~showtimedll()
{
}
QString showtimedll::show()
{
QDateTime time = QDateTime::currentDateTime();
QString strtime = time.toString("yyyy.MM.dd hh:mm:ss.zzz");
return strtime;
}
Q_EXPORT_PLUGIN2("SHOWINTERFACE", showtimedll);

步骤3:调用DLL

#include "testdll.h"
#include <QtGui/QApplication>
#include <QtCore>
#include <QMessageBox>
#include "showtimeinterface.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
TestDll w;
w.show();
QPluginLoader loader("D:\\code\\comtopcode\\pluginstudy\\showtimedll\\x64\\Debug\\showtimedll.dll");
QObject *aaa = loader.instance();
if (aaa)
{
SHOWINTERFACE* echoInterface = qobject_cast<SHOWINTERFACE *>(aaa);//echoInterface是成员变量
if(NULL == echoInterface)
return -1;
QString pp  = echoInterface->show();
QMessageBox::information(NULL,pp,pp, QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
}
return a.exec();
}

这样就可以按葫芦画瓢,基本实现了DLL 插件的编写和调用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值