00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef DLLC_H
00027 #define DLLC_H
00028
00029
00030
00031
00032 #include "oaw/misc/stringc.h"
00033 #include "oaw/misc/arrayc.h"
00034
00035 #include "../oawconfig.h"
00036
00037 OAW_BEGIN_NAMESPACE
00038
00039 class OAW_DLLMAPPING DllC
00040 {
00041 public:
00042 DllC();
00043 virtual ~DllC();
00044 DllC(const DllC&);
00045 DllC& operator = (const DllC&);
00046 void* GetAddress(const StringC&);
00047 short Load(const StringC&);
00048 short IsLoaded(){return m_handle!=0;}
00049 protected:
00050 void* m_handle;
00051 StringC m_dllFile;
00052 private:
00053 void CheckAndFreeHandle();
00054 private:
00055 static ArrayC<StringC> m_dllLoadedFiles;
00056 static ArrayC<void*> m_dllLoadedHandles;
00057 static ArrayC<long> m_dllLoadedHandlesCount;
00058 };
00059
00060 OAW_END_NAMESPACE
00061
00062 #endif
00063
00064
00065
00066
00067