lxg

导航

 
#ifndef ICONNECT_H
#define ICONNECT_H
#include <QtCore/qglobal.h>
#if defined(MYDLL_LIBRARY)
#  define MYDLL_EXPORT Q_DECL_EXPORT
#else
#  define MYDLL_EXPORT Q_DECL_IMPORT
#endif
 
///接口类
class IConnect
{
public:
    virtual ~IConnect(){}
    //static IConnect* createEx();
    virtual int sum(int a, int b) = 0;
    virtual int sub(int a, int b) = 0;
};

extern "C" MYDLL_EXPORT IConnect* Create();
 
#endif //ICONNECT_H
 
#include "../Interface/IConnect.h"
 
//MyDll继承接口类IConnect
class MyDll : public IConnect
{
public:
    MyDll();
    int sum(int a, int b) override;
    int sub(int a, int b) override;
};
 
//实现类
#include "mydll.h"
 
MyDll::MyDll()
{
}
int MyDll::sum(int a, int b)
{
    return  a + b;
}
int MyDll::sub(int a, int b)
{
    return  a - b;
}
///注意
extern "C" MYDLL_EXPORT IConnect* Create()
{
    return new MyDll();
}
 
///将MyDll的lib和dll文件加载库后 调用
IConnect* connect = Create();
cout<<connect->sum(3, 5)<<endl;
 
可以继续封装
 
 
 
 
 
posted on 2021-01-19 10:37  lxg_7105  阅读(797)  评论(0编辑  收藏  举报