Mercurial > sdl-ios-xcode
view test/testloadso.c @ 4423:7953336267c2
Disable error checks for reset actuators and set autocenter.
Reset actuators and set autocenter might not actually be supported on all
implementations. We'll just disable error checking since they aren't
critical to neither opening the joystick nor the haptic subsystem.
author | Edgar Simo <bobbens@gmail.com> |
---|---|
date | Sun, 28 Feb 2010 09:23:23 +0000 |
parents | 9de326b3099c |
children |
line wrap: on
line source
/* Test program to test dynamic loading with the loadso subsystem. */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include "SDL.h" typedef int (*fntype) (const char *); int main(int argc, char *argv[]) { int retval = 0; int hello = 0; const char *libname = NULL; const char *symname = NULL; void *lib = NULL; fntype fn = NULL; if (argc != 3) { const char *app = argv[0]; fprintf(stderr, "USAGE: %s <library> <functionname>\n", app); fprintf(stderr, " %s --hello <lib with puts()>\n", app); return 1; } /* Initialize SDL */ if (SDL_Init(0) < 0) { fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); return 2; } if (strcmp(argv[1], "--hello") == 0) { hello = 1; libname = argv[2]; symname = "puts"; } else { libname = argv[1]; symname = argv[2]; } lib = SDL_LoadObject(libname); if (lib == NULL) { fprintf(stderr, "SDL_LoadObject('%s') failed: %s\n", libname, SDL_GetError()); retval = 3; } else { fn = (fntype) SDL_LoadFunction(lib, symname); if (fn == NULL) { fprintf(stderr, "SDL_LoadFunction('%s') failed: %s\n", symname, SDL_GetError()); retval = 4; } else { printf("Found %s in %s at %p\n", symname, libname, fn); if (hello) { printf("Calling function...\n"); fflush(stdout); fn(" HELLO, WORLD!\n"); printf("...apparently, we survived. :)\n"); printf("Unloading library...\n"); fflush(stdout); } } SDL_UnloadObject(lib); } SDL_Quit(); return (0); }