00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00026
#ifndef __vtkDynamicLoader_h
00027
#define __vtkDynamicLoader_h
00028
#include "vtkObject.h"
00029
00030
00031
00032
00033
#if defined(__hpux)
00034
# include <dl.h>
00035
typedef shl_t
vtkLibHandle;
00036
#elif defined(_WIN32)
00037
typedef HMODULE
vtkLibHandle;
00038
#else
00039 typedef void*
vtkLibHandle;
00040
#endif
00041
00042
00043
00044
00045 class VTK_COMMON_EXPORT vtkDynamicLoader :
public vtkObject
00046 {
00047
public:
00048
static vtkDynamicLoader*
New();
00049 vtkTypeRevisionMacro(vtkDynamicLoader,
vtkObject);
00050
00051
00054
static vtkLibHandle OpenLibrary(
const char*);
00055
00057
00059
static int CloseLibrary(vtkLibHandle);
00060
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&);
00082
void operator=(
const vtkDynamicLoader&);
00083 };
00084
00085
#endif