//========= Copyright Valve Corporation ============// #include "sharedlibtools_public.h" #include #if defined(_WIN32) #include #endif #if defined(POSIX) #include #endif SharedLibHandle SharedLib_Load( const char *pchPath ) { #if defined( _WIN32) return (SharedLibHandle)LoadLibraryEx( pchPath, NULL, LOAD_WITH_ALTERED_SEARCH_PATH ); #elif defined(POSIX) return (SharedLibHandle)dlopen(pchPath, RTLD_LOCAL|RTLD_NOW); #endif } void *SharedLib_GetFunction( SharedLibHandle lib, const char *pchFunctionName) { #if defined( _WIN32) return (void*)GetProcAddress( (HMODULE)lib, pchFunctionName ); #elif defined(POSIX) return dlsym( lib, pchFunctionName ); #endif } void SharedLib_Unload( SharedLibHandle lib ) { if ( !lib ) return; #if defined( _WIN32) FreeLibrary( (HMODULE)lib ); #elif defined(POSIX) dlclose( lib ); #endif }