#pragma once ///////////////////////////////////////////////////////////// // ITest.h - interface for Component // // // // Jim Fawcett, CSE775 - Distributed Objects, Spring 2015 // ///////////////////////////////////////////////////////////// #ifdef TEST_EXPORTS #define TEST_API __declspec(dllexport) #else #define TEST_API __declspec(dllimport) #endif #define LIFETIME_EXPORTS #include "ILifeTime.h" class TEST_API ITest : public LIFETIME_EXPORTS LifeTimeBase { public: virtual ~ITest(void) {} static ITest* createTest(); // built-in factory virtual bool test() = 0; virtual size_t AddRef() { return LifeTimeBase::AddRef(); } virtual size_t Release() { return LifeTimeBase::Release(); } }; extern "C" { // unmangled global factory TEST_API ITest* globalCreateTest(); }