1 // Copyright (C) 2021 Harry Godden (hgn)
3 // Cross platform (windows/unix) dynamic linking wrapper
4 //=======================================================================================================================
8 #if defined(_WIN32) || defined(__CYGWIN__)
11 typedef HINSTANCE csr_so
;
18 csr_so
csr_libopen( const char *name
)
21 strcpy( path
, "ext/" );
25 strcat( path
, ".so" );
27 strcat( path
, ".dll" );
30 log_info( "Loading dynamic library (%s)\n", path
);
33 return dlopen( path
, RTLD_NOW
);
35 return LoadLibrary( path
);
39 void *csr_get_proc( csr_so so
, const char *name
)
42 return dlsym( so
, name
);
44 return (void *)GetProcAddress( so
, name
);
48 void csr_libclose( csr_so so
)
60 log_error( "Could not load that DLL (%s)\n", dlerror() );
62 log_error( "Could not load that DLL (Windows unkown)\n" );