22
33#if defined __linux__ || defined __APPLE__
44#include < dlfcn.h>
5+ #else
6+ #include < Windows.h>
57#endif
68
79namespace mplcairo ::os {
810
911#if defined __linux__ || defined __APPLE__
10- void * dlopen (char const * filename) {
12+ using library_t = void *;
13+ using symbol_t = void *;
14+
15+ library_t dlopen (char const * filename) {
1116 return ::dlopen (filename, RTLD_LAZY);
1217}
1318
14- bool dlclose (void * handle) {
19+ bool dlclose (library_t handle) {
1520 return ::dlclose (handle);
1621}
1722
18- void * dlsym (void * handle, char const * symbol) {
23+ symbol_t dlsym (library_t handle, char const * symbol) {
1924 return ::dlsym (handle, symbol);
2025}
2126
@@ -24,15 +29,18 @@ char const* dlerror() {
2429}
2530
2631#elif _WIN32
27- void * dlopen (char const * filename) {
32+ using library_t = HMODULE;
33+ using symbol_t = FARPROC;
34+
35+ library_t dlopen (char const * filename) {
2836 return LoadLibrary (filename);
2937}
3038
31- bool dlclose (void * handle) {
39+ bool dlclose (library_t handle) {
3240 return !FreeLibrary (handle);
3341}
3442
35- void * dlsym (void * handle, char const * symbol) {
43+ symbol_t dlsym (library_t handle, char const * symbol) {
3644 return GetProcAddress (handle, symbol);
3745}
3846
0 commit comments