int uv_dlopen(const char* filename, uv_lib_t* lib) { wchar_t filename_w[32768]; lib->handle = NULL; lib->errmsg = NULL; if (!uv_utf8_to_utf16(filename, filename_w, ARRAY_SIZE(filename_w))) { return uv__dlerror(lib, GetLastError()); } lib->handle = LoadLibraryExW(filename_w, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); if (lib->handle == NULL) { return uv__dlerror(lib, GetLastError()); } return 0; }
int uv_dlopen(const char* filename, uv_lib_t* lib) { WCHAR filename_w[32768]; lib->handle = NULL; lib->errmsg = NULL; if (!MultiByteToWideChar(CP_UTF8, 0, filename, -1, filename_w, ARRAY_SIZE(filename_w))) { return uv__dlerror(lib, GetLastError()); } lib->handle = LoadLibraryExW(filename_w, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); if (lib->handle == NULL) { return uv__dlerror(lib, GetLastError()); } return 0; }
int uv_dlopen(const char* filename, uv_lib_t* lib, int glob) { int flag; dlerror(); /* Reset error status. */ lib->errmsg = NULL; flag = RTLD_LAZY; if (glob) { flag |= RTLD_GLOBAL; } lib->handle = dlopen(filename, flag); return lib->handle ? 0 : uv__dlerror(lib); }
int uv_dlsym(uv_lib_t* lib, const char* name, void** ptr) { dlerror(); /* Reset error status. */ *ptr = dlsym(lib->handle, name); return uv__dlerror(lib); }
int uv_dlopen(const char* filename, uv_lib_t* lib) { dlerror(); /* Reset error status. */ lib->errmsg = NULL; lib->handle = dlopen(filename, RTLD_LAZY); return lib->handle ? 0 : uv__dlerror(lib); }
int uv_dlsym(uv_lib_t* lib, const char* name, void** ptr) { *ptr = (void*) GetProcAddress(lib->handle, name); return uv__dlerror(lib, *ptr ? 0 : GetLastError()); }