Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dox/Common/vtkDynamicLoader.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkDynamicLoader.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 00014 00015 =========================================================================*/ 00026 #ifndef __vtkDynamicLoader_h 00027 #define __vtkDynamicLoader_h 00028 #include "vtkObject.h" 00029 00030 //BTX 00031 // Ugly stuff for library handles 00032 // They are different on several different OS's 00033 #if defined(__hpux) 00034 # include <dl.h> // Needed for special dynamic loading on hp 00035 typedef shl_t vtkLibHandle; 00036 #elif defined(_WIN32) 00037 typedef HMODULE vtkLibHandle; 00038 #else 00039 typedef void* vtkLibHandle; 00040 #endif 00041 //ETX 00042 00043 00044 00045 class VTK_COMMON_EXPORT vtkDynamicLoader : public vtkObject 00046 { 00047 public: 00048 static vtkDynamicLoader* New(); 00049 vtkTypeRevisionMacro(vtkDynamicLoader,vtkObject); 00050 00051 //BTX 00054 static vtkLibHandle OpenLibrary(const char*); 00055 00057 00059 static int CloseLibrary(vtkLibHandle); 00060 //ETX 00062 00064 static void* GetSymbolAddress(vtkLibHandle, const char*); 00065 00067 static const char* LibPrefix(); 00068 00070 static const char* LibExtension(); 00071 00073 static const char* LastError(); 00074 00075 protected: 00076 vtkDynamicLoader() {}; 00077 ~vtkDynamicLoader() {}; 00078 00079 00080 private: 00081 vtkDynamicLoader(const vtkDynamicLoader&); // Not implemented. 00082 void operator=(const vtkDynamicLoader&); // Not implemented. 00083 }; 00084 00085 #endif