forked from dolphin-emu/dolphin
		
	git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1927 8ced0084-cf51-0410-be5f-012b33b47a6e
		
			
				
	
	
		
			83 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
    SDL - Simple DirectMedia Layer
 | 
						|
    Copyright (C) 1997-2009 Sam Lantinga
 | 
						|
 | 
						|
    This library is free software; you can redistribute it and/or
 | 
						|
    modify it under the terms of the GNU Lesser General Public
 | 
						|
    License as published by the Free Software Foundation; either
 | 
						|
    version 2.1 of the License, or (at your option) any later version.
 | 
						|
 | 
						|
    This library is distributed in the hope that it will be useful,
 | 
						|
    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
						|
    Lesser General Public License for more details.
 | 
						|
 | 
						|
    You should have received a copy of the GNU Lesser General Public
 | 
						|
    License along with this library; if not, write to the Free Software
 | 
						|
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | 
						|
 | 
						|
    Sam Lantinga
 | 
						|
    slouken@libsdl.org
 | 
						|
*/
 | 
						|
 | 
						|
/**
 | 
						|
 * \file SDL_loadso.h
 | 
						|
 *
 | 
						|
 * System dependent library loading routines
 | 
						|
 *
 | 
						|
 * Some things to keep in mind:                                        
 | 
						|
 * - These functions only work on C function names.  Other languages may
 | 
						|
 *   have name mangling and intrinsic language support that varies from
 | 
						|
 *   compiler to compiler.
 | 
						|
 * - Make sure you declare your function pointers with the same calling
 | 
						|
 *   convention as the actual library function.  Your code will crash
 | 
						|
 *   mysteriously if you do not do this.
 | 
						|
 * - Avoid namespace collisions.  If you load a symbol from the library,
 | 
						|
 *   it is not defined whether or not it goes into the global symbol
 | 
						|
 *   namespace for the application.  If it does and it conflicts with
 | 
						|
 *   symbols in your code or other shared libraries, you will not get
 | 
						|
 *   the results you expect. :)
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef _SDL_loadso_h
 | 
						|
#define _SDL_loadso_h
 | 
						|
 | 
						|
#include "SDL_stdinc.h"
 | 
						|
#include "SDL_error.h"
 | 
						|
 | 
						|
#include "begin_code.h"
 | 
						|
/* Set up for C function definitions, even when using C++ */
 | 
						|
#ifdef __cplusplus
 | 
						|
/* *INDENT-OFF* */
 | 
						|
extern "C" {
 | 
						|
/* *INDENT-ON* */
 | 
						|
#endif
 | 
						|
 | 
						|
/* This function dynamically loads a shared object and returns a pointer
 | 
						|
 * to the object handle (or NULL if there was an error).
 | 
						|
 * The 'sofile' parameter is a system dependent name of the object file.
 | 
						|
 */
 | 
						|
extern DECLSPEC void *SDLCALL SDL_LoadObject(const char *sofile);
 | 
						|
 | 
						|
/* Given an object handle, this function looks up the address of the
 | 
						|
 * named function in the shared object and returns it.  This address
 | 
						|
 * is no longer valid after calling SDL_UnloadObject().
 | 
						|
 */
 | 
						|
extern DECLSPEC void *SDLCALL SDL_LoadFunction(void *handle,
 | 
						|
                                               const char *name);
 | 
						|
 | 
						|
/* Unload a shared object from memory */
 | 
						|
extern DECLSPEC void SDLCALL SDL_UnloadObject(void *handle);
 | 
						|
 | 
						|
/* Ends C function definitions when using C++ */
 | 
						|
#ifdef __cplusplus
 | 
						|
/* *INDENT-OFF* */
 | 
						|
}
 | 
						|
/* *INDENT-ON* */
 | 
						|
#endif
 | 
						|
#include "close_code.h"
 | 
						|
 | 
						|
#endif /* _SDL_loadso_h */
 | 
						|
 | 
						|
/* vi: set ts=4 sw=4 expandtab: */
 |