Lines Matching refs:lib
25 static int uv__dlerror(uv_lib_t* lib, const char* filename, DWORD errorno);
28 int uv_dlopen(const char* filename, uv_lib_t* lib) {
31 lib->handle = NULL;
32 lib->errmsg = NULL;
40 return uv__dlerror(lib, filename, GetLastError());
43 lib->handle = LoadLibraryExW(filename_w, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
44 if (lib->handle == NULL) {
45 return uv__dlerror(lib, filename, GetLastError());
52 void uv_dlclose(uv_lib_t* lib) {
53 if (lib->errmsg) {
54 LocalFree((void*)lib->errmsg);
55 lib->errmsg = NULL;
58 if (lib->handle) {
60 FreeLibrary(lib->handle);
61 lib->handle = NULL;
66 int uv_dlsym(uv_lib_t* lib, const char* name, void** ptr) {
68 *ptr = (void*)(uintptr_t) GetProcAddress(lib->handle, name);
69 return uv__dlerror(lib, "", *ptr ? 0 : GetLastError());
73 const char* uv_dlerror(const uv_lib_t* lib) {
74 return lib->errmsg ? lib->errmsg : "no error";
78 static void uv__format_fallback_error(uv_lib_t* lib, int errorno){
87 (LPSTR) &lib->errmsg,
93 static int uv__dlerror(uv_lib_t* lib, const char* filename, DWORD errorno) {
98 if (lib->errmsg) {
99 LocalFree(lib->errmsg);
100 lib->errmsg = NULL;
110 (LPSTR) &lib->errmsg, 0, NULL);
117 0, (LPSTR) &lib->errmsg, 0, NULL);
120 if (res && errorno == ERROR_BAD_EXE_FORMAT && strstr(lib->errmsg, "%1")) {
121 msg = lib->errmsg;
122 lib->errmsg = NULL;
128 0, 0, (LPSTR) &lib->errmsg, 0, (va_list*) &arg);
133 uv__format_fallback_error(lib, errorno);