1 | /* Copyright (c) 2001, Stanford University
|
---|
2 | * All rights reserved.
|
---|
3 | *
|
---|
4 | * See the file LICENSE.txt for information on redistributing this software.
|
---|
5 | */
|
---|
6 |
|
---|
7 | #ifndef CR_DLL_H
|
---|
8 | #define CR_DLL_H
|
---|
9 |
|
---|
10 | #if defined(WINDOWS)
|
---|
11 | #define WIN32_LEAN_AND_MEAN
|
---|
12 | # ifdef VBOX
|
---|
13 | # include <iprt/win/windows.h>
|
---|
14 | # else
|
---|
15 | #include <windows.h>
|
---|
16 | # endif
|
---|
17 | #endif
|
---|
18 |
|
---|
19 | #include <iprt/cdefs.h>
|
---|
20 |
|
---|
21 | #ifdef __cplusplus
|
---|
22 | extern "C" {
|
---|
23 | #endif
|
---|
24 |
|
---|
25 | typedef struct {
|
---|
26 | char *name;
|
---|
27 | #if defined(WINDOWS)
|
---|
28 | HINSTANCE hinstLib;
|
---|
29 | #elif defined(IRIX) || defined(IRIX64) || defined(Linux) || defined(FreeBSD) || defined(AIX) || defined(SunOS) || defined(OSF1)
|
---|
30 | void *hinstLib;
|
---|
31 | #elif defined(DARWIN)
|
---|
32 | void *hinstLib; /* void to avoid including the headers */
|
---|
33 | int type; /* to avoid calling crStrstr all the time */
|
---|
34 | #else
|
---|
35 | #error ARCHITECTURE DLL NOT IMPLEMENTED
|
---|
36 | #endif
|
---|
37 | } CRDLL;
|
---|
38 |
|
---|
39 | typedef void (*CRDLLFunc)(void);
|
---|
40 | DECLEXPORT(CRDLL *) crDLLOpen( const char *dllname, int resolveGlobal );
|
---|
41 | DECLEXPORT(CRDLLFunc) crDLLGetNoError( CRDLL *dll, const char *symname );
|
---|
42 | DECLEXPORT(CRDLLFunc) crDLLGet( CRDLL *dll, const char *symname );
|
---|
43 | DECLEXPORT(void) crDLLClose( CRDLL *dll );
|
---|
44 |
|
---|
45 | #ifdef __cplusplus
|
---|
46 | }
|
---|
47 | #endif
|
---|
48 |
|
---|
49 | #endif /* CR_DLL_H */
|
---|