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) {
32 lib->handle = NULL;
33 lib->errmsg = NULL;
37 return uv__dlerror(lib, filename, ERROR_NO_UNICODE_TRANSLATION);
39 return uv__dlerror(lib, filename, ERROR_INSUFFICIENT_BUFFER);
42 lib->handle = LoadLibraryExW(filename_w, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
43 if (lib->handle == NULL) {
44 return uv__dlerror(lib, filename, GetLastError());
51 void uv_dlclose(uv_lib_t* lib) {
52 if (lib->errmsg) {
53 LocalFree((void*)lib->errmsg);
54 lib->errmsg = NULL;
57 if (lib->handle) {
59 FreeLibrary(lib->handle);
60 lib->handle = NULL;
65 int uv_dlsym(uv_lib_t* lib, const char* name, void** ptr) {
67 *ptr = (void*)(uintptr_t) GetProcAddress(lib->handle, name);
68 return uv__dlerror(lib, "", *ptr ? 0 : GetLastError());
72 const char* uv_dlerror(const uv_lib_t* lib) {
73 return lib->errmsg ? lib->errmsg : "no error";
77 static void uv__format_fallback_error(uv_lib_t* lib, int errorno){
86 (LPSTR) &lib->errmsg,
92 static int uv__dlerror(uv_lib_t* lib, const char* filename, DWORD errorno) {
97 if (lib->errmsg) {
98 LocalFree(lib->errmsg);
99 lib->errmsg = NULL;
109 (LPSTR) &lib->errmsg, 0, NULL);
116 0, (LPSTR) &lib->errmsg, 0, NULL);
119 if (res && errorno == ERROR_BAD_EXE_FORMAT && strstr(lib->errmsg, "%1")) {
120 msg = lib->errmsg;
121 lib->errmsg = NULL;
127 0, 0, (LPSTR) &lib->errmsg, 0, (va_list*) &arg);
132 uv__format_fallback_error(lib, errorno);