Salome HOME
copy tag mergefrom_BR_V0_1_CC_Salome_04oct07
[modules/yacs.git] / src / bases / DynLibLoaderWin.hxx
1 #ifndef __DYNLIBLOADERWIN_HXX__
2 #define __DYNLIBLOADERWIN_HXX__
3
4 #include <string>
5
6 namespace YACS
7 {
8   namespace BASES
9   {
10     class DynLibLoaderWin
11     {
12     private:
13       void *_handleOnLoadedLib;
14       std::string _libName;
15       static const char _extForDynLib[];
16     public:
17       DynLibLoaderWin(const std::string& libNameWithoutExtension);
18       ~DynLibLoaderWin();
19       bool isLibFileFindable() const;
20       int appendDirInSearchPath(const std::string& dirName);
21       int removeDirInSearchPath(const std::string& dirName);
22       void *getHandleOnSymbolWithName(const std::string& symbName);
23       static const char *getExtensionForDynLib();
24     private:
25       void loadLib();//! load lib without regarding that _libName is reachable
26       void *resolveSymb(const std::string& symbName);
27     };
28   }
29 }
30
31 #endif