-class DLLFactoryBase : public DLLManager
-{
- public:
- DLLFactoryBase(const char *fname, const char *func_name = 0);
- virtual ~DLLFactoryBase();
-#ifdef STATIC_LINK
- initfunc *factory_func;
-#else
- void * (*factory_func)(void);
-#endif
-};
-
-
-template <class T> class DLLFactory : public DLLFactoryBase
-{
- public:
- DLLFactory(const char *fname, const char *func_name=0) : DLLFactoryBase(fname,func_name)
- {
- if (factory_func)
- factory = (T*)factory_func();
- else
- factory = 0;
- }
-
- ~DLLFactory()
- {
- delete factory;
- }
-
- T *factory;