| Index: third_party/openvr/src/src/vrcommon/sharedlibtools_public.cpp
|
| diff --git a/third_party/openvr/src/src/vrcommon/sharedlibtools_public.cpp b/third_party/openvr/src/src/vrcommon/sharedlibtools_public.cpp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b88c2986f66f533e3c7a5e0621995660f47a0cfc
|
| --- /dev/null
|
| +++ b/third_party/openvr/src/src/vrcommon/sharedlibtools_public.cpp
|
| @@ -0,0 +1,41 @@
|
| +//========= Copyright Valve Corporation ============//
|
| +#include "sharedlibtools_public.h"
|
| +#include <string.h>
|
| +
|
| +#if defined(_WIN32)
|
| +#include <Windows.h>
|
| +#endif
|
| +
|
| +#if defined(POSIX)
|
| +#include <dlfcn.h>
|
| +#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 GetProcAddress( (HMODULE)lib, pchFunctionName );
|
| +#elif defined(POSIX)
|
| + return dlsym( lib, pchFunctionName );
|
| +#endif
|
| +}
|
| +
|
| +
|
| +void SharedLib_Unload( SharedLibHandle lib )
|
| +{
|
| +#if defined( _WIN32)
|
| + FreeLibrary( (HMODULE)lib );
|
| +#elif defined(POSIX)
|
| + dlclose( lib );
|
| +#endif
|
| +}
|
| +
|
| +
|
|
|