|
|
1.1 root 1: #ifndef _XP_DL_H_
2: #define _XP_DL_H_
3:
4: #include "wrapdll.h"
5:
6: #ifndef STATIC_LINK
7: #if defined(__unix__)
8: #include <dlfcn.h>
9:
10: typedef void * dll_handle;
11: DLLEXPORT dll_handle DLLCALL xp_dlopen(const char **name, int mode, int major);
12: #define xp_dlsym(handle, name) dlsym(handle, #name)
13: #define xp_dlclose(handle) dlclose(handle)
14: #elif defined(_WIN32)
15: #include <Windows.h>
16:
17: typedef HMODULE dll_handle;
18: DLLEXPORT dll_handle DLLCALL xp_dlopen(const char **name, int mode, int major);
19: #define xp_dlsym(handle, name) ((void *)GetProcAddress(handle, #name))
20: #define xp_dlclose(handle) (FreeLibrary(handle)?0:-1)
21:
22: /* Unused values for *nix compatability */
23: enum {
24: RTLD_LAZY
25: ,RTLD_NOW
26: ,RTLD_GLOBAL
27: ,RTLD_LOCAL
28: ,RTLD_TRACE
29: };
30: #endif
31: #else
32: typedef void* dll_handle;
33:
34: #define xp_dlopen(name, mode, major) (name)
35: #define xp_dlsym(handle, name) (name)
36: #define xp_dlclose(handle) (0)
37: #endif
38:
39: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.