00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00022
#ifndef __vtkDynamicLoader_h
00023
#define __vtkDynamicLoader_h
00024
#include "vtkObject.h"
00025
00026
00027
00028
00029
#if defined(__hpux)
00030
# include <dl.h>
00031
typedef shl_t
vtkLibHandle;
00032
#elif defined(_WIN32)
00033
typedef HMODULE
vtkLibHandle;
00034
#else
00035 typedef void*
vtkLibHandle;
00036
#endif
00037
00038
00039
00040
00041 class VTK_COMMON_EXPORT vtkDynamicLoader :
public vtkObject
00042 {
00043
public:
00044
static vtkDynamicLoader*
New();
00045 vtkTypeRevisionMacro(vtkDynamicLoader,
vtkObject);
00046
00047
00050
static vtkLibHandle OpenLibrary(
const char*);
00051
00053
00055
static int CloseLibrary(vtkLibHandle);
00056
00058
00060
static void* GetSymbolAddress(vtkLibHandle,
const char*);
00061
00063
static const char* LibPrefix();
00064
00066
static const char* LibExtension();
00067
00069
static const char* LastError();
00070
00071
protected:
00072 vtkDynamicLoader() {};
00073 ~vtkDynamicLoader() {};
00074
00075
00076
private:
00077 vtkDynamicLoader(
const vtkDynamicLoader&);
00078
void operator=(
const vtkDynamicLoader&);
00079 };
00080
00081
#endif