工厂及导出类
#pragma once
class IUT
{
public:
IUT(void){};
virtual ~IUT(void){};
public:
virtual bool CallUT() = 0;
};
#pragma once
#include "IUT.h"
class UTT1 : public IUT
{
public:
UTT1(void) {};
virtual ~UTT1(void) {};
public:
virtual bool CallUT() override
{
return true;
};
};
#pragma once
#include "UTT1.h"
#define FACTORYFRAME_EXPORTS
#ifdef FACTORYFRAME_EXPORTS
#define UTFactory_EXT_CLASS __declspec(dllexport)
#else
#define UTFactory_EXT_CLASS __declspec(dllimport)
#endif
class IUT;
class UTFactory_EXT_CLASS UTFactory
{
public:
UTFactory(void);
virtual ~UTFactory(void);
public:
static UTFactory& GetInstance(void)
{
static UTFactory instance;
return instance;
};
IUT* GetUTT1(void)
{
if (nullptr == m_pUT)
{
m_pUT = new UTT1;
}
return m_pUT;
};
void ReleaseUTT1()
{
if (nullptr != m_pUT)
{
delete m_pUT;
m_pUT = nullptr;
}
};
private:
IUT* m_pUT = nullptr;
};