annotate include/SDL_loadso.h @ 4222:6823a52d06fa SDL-1.2

Fixed bug #714 fuzzyTew@gmail.com 2009-03-14 15:18:45 PDT Created an attachment (id=305) [details] patch to change HAVE_ICONV to HAVE_ICONV_H There are two separate iconv checks in configure -- one for the header file and one for the library. include/SDL_stdinc.h uses the library define to see whether or not it should reference the types defined in the header, which naturally breaks if the library exists and the header does not.
author Sam Lantinga <slouken@libsdl.org>
date Mon, 21 Sep 2009 11:04:32 +0000
parents 4c4113c2162c
children
rev   line source
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
1 /*
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
2 SDL - Simple DirectMedia Layer
4159
a1b03ba2fcd0 Updated copyright date
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
3 Copyright (C) 1997-2009 Sam Lantinga
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
4
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
5 This library is free software; you can redistribute it and/or
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 769
diff changeset
6 modify it under the terms of the GNU Lesser General Public
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
7 License as published by the Free Software Foundation; either
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 769
diff changeset
8 version 2.1 of the License, or (at your option) any later version.
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
9
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
10 This library is distributed in the hope that it will be useful,
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 769
diff changeset
13 Lesser General Public License for more details.
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
14
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 769
diff changeset
15 You should have received a copy of the GNU Lesser General Public
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 769
diff changeset
16 License along with this library; if not, write to the Free Software
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 769
diff changeset
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
18
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
19 Sam Lantinga
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
20 slouken@libsdl.org
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
21 */
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
22
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
23 /** @file SDL_loadso.h
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
24 * System dependent library loading routines
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
25 */
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
26
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
27 /** @file SDL_loadso.h
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
28 * Some things to keep in mind:
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
29 * - These functions only work on C function names. Other languages may
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
30 * have name mangling and intrinsic language support that varies from
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
31 * compiler to compiler.
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
32 * - Make sure you declare your function pointers with the same calling
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
33 * convention as the actual library function. Your code will crash
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
34 * mysteriously if you do not do this.
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
35 * - Avoid namespace collisions. If you load a symbol from the library,
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
36 * it is not defined whether or not it goes into the global symbol
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
37 * namespace for the application. If it does and it conflicts with
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
38 * symbols in your code or other shared libraries, you will not get
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
39 * the results you expect. :)
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
40 */
649
81c74904f51f Added some notes from the benefit of my experience. :)
Sam Lantinga <slouken@libsdl.org>
parents: 648
diff changeset
41
81c74904f51f Added some notes from the benefit of my experience. :)
Sam Lantinga <slouken@libsdl.org>
parents: 648
diff changeset
42
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
43 #ifndef _SDL_loadso_h
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
44 #define _SDL_loadso_h
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
45
1356
67114343400d *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 1312
diff changeset
46 #include "SDL_stdinc.h"
1358
c71e05b4dc2e More header massaging... works great on Windows. ;-)
Sam Lantinga <slouken@libsdl.org>
parents: 1356
diff changeset
47 #include "SDL_error.h"
1356
67114343400d *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 1312
diff changeset
48
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
49 #include "begin_code.h"
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
50 /* Set up for C function definitions, even when using C++ */
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
51 #ifdef __cplusplus
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
52 extern "C" {
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
53 #endif
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
54
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
55 /**
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
56 * This function dynamically loads a shared object and returns a pointer
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
57 * to the object handle (or NULL if there was an error).
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
58 * The 'sofile' parameter is a system dependent name of the object file.
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
59 */
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
60 extern DECLSPEC void * SDLCALL SDL_LoadObject(const char *sofile);
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
61
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
62 /**
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
63 * Given an object handle, this function looks up the address of the
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
64 * named function in the shared object and returns it. This address
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
65 * is no longer valid after calling SDL_UnloadObject().
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
66 */
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
67 extern DECLSPEC void * SDLCALL SDL_LoadFunction(void *handle, const char *name);
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
68
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
69 /** Unload a shared object from memory */
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
70 extern DECLSPEC void SDLCALL SDL_UnloadObject(void *handle);
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
71
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
72 /* Ends C function definitions when using C++ */
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
73 #ifdef __cplusplus
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
74 }
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
75 #endif
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
76 #include "close_code.h"
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
77
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
78 #endif /* _SDL_loadso_h */