#ifndef ICONNECT_H
#define 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
#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;
};
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;
};
{
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;
}
{
return a + b;
}
int MyDll::sub(int a, int b)
{
return a - b;
}
{
return a - b;
}
///注意
extern "C" MYDLL_EXPORT IConnect* Create()
{
return new MyDll();
}
extern "C" MYDLL_EXPORT IConnect* Create()
{
return new MyDll();
}
///将MyDll的lib和dll文件加载库后 调用
IConnect* connect = Create();
cout<<connect->sum(3, 5)<<endl;
可以继续封装