/[pcsx2_0.9.7]/trunk/3rdparty/SDL-1.3.0-5387/test/testloadso.c
ViewVC logotype

Contents of /trunk/3rdparty/SDL-1.3.0-5387/test/testloadso.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 401 - (show annotations) (download)
Fri Feb 25 17:31:09 2011 UTC (9 years, 9 months ago) by william
File MIME type: text/plain
File size: 1818 byte(s)
Auto Commited Import of: pcsx2-0.9.7-DEBUG (upstream: v0.9.7.4358 local: v0.9.7.313-latest) in ./trunk
1
2 /* Test program to test dynamic loading with the loadso subsystem.
3 */
4
5 #include <stdio.h>
6 #include <stdlib.h>
7 #include <string.h>
8
9 #include "SDL.h"
10
11 typedef int (*fntype) (const char *);
12
13 int
14 main(int argc, char *argv[])
15 {
16 int retval = 0;
17 int hello = 0;
18 const char *libname = NULL;
19 const char *symname = NULL;
20 void *lib = NULL;
21 fntype fn = NULL;
22
23 if (argc != 3) {
24 const char *app = argv[0];
25 fprintf(stderr, "USAGE: %s <library> <functionname>\n", app);
26 fprintf(stderr, " %s --hello <lib with puts()>\n", app);
27 return 1;
28 }
29
30 /* Initialize SDL */
31 if (SDL_Init(0) < 0) {
32 fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError());
33 return 2;
34 }
35
36 if (strcmp(argv[1], "--hello") == 0) {
37 hello = 1;
38 libname = argv[2];
39 symname = "puts";
40 } else {
41 libname = argv[1];
42 symname = argv[2];
43 }
44
45 lib = SDL_LoadObject(libname);
46 if (lib == NULL) {
47 fprintf(stderr, "SDL_LoadObject('%s') failed: %s\n",
48 libname, SDL_GetError());
49 retval = 3;
50 } else {
51 fn = (fntype) SDL_LoadFunction(lib, symname);
52 if (fn == NULL) {
53 fprintf(stderr, "SDL_LoadFunction('%s') failed: %s\n",
54 symname, SDL_GetError());
55 retval = 4;
56 } else {
57 printf("Found %s in %s at %p\n", symname, libname, fn);
58 if (hello) {
59 printf("Calling function...\n");
60 fflush(stdout);
61 fn(" HELLO, WORLD!\n");
62 printf("...apparently, we survived. :)\n");
63 printf("Unloading library...\n");
64 fflush(stdout);
65 }
66 }
67 SDL_UnloadObject(lib);
68 }
69 SDL_Quit();
70 return (0);
71 }

  ViewVC Help
Powered by ViewVC 1.1.22