summaryrefslogtreecommitdiffstats
path: root/byterun/win32.c
diff options
context:
space:
mode:
Diffstat (limited to 'byterun/win32.c')
-rw-r--r--byterun/win32.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/byterun/win32.c b/byterun/win32.c
index 229a07d63..427093a1d 100644
--- a/byterun/win32.c
+++ b/byterun/win32.c
@@ -120,9 +120,15 @@ char * caml_search_dll_in_path(struct ext_table * path, char * name)
return res;
}
-void * caml_dlopen(char * libname)
+void * caml_dlopen(char * libname, int for_execution)
{
- return (void *) LoadLibrary(libname);
+ HMODULE m;
+ m = LoadLibraryEx(libname, NULL,
+ for_execution ? 0 : DONT_RESOLVE_DLL_REFERENCES);
+ /* LoadLibraryEx can fail under Win 95/98/ME in cases where LoadLibrary
+ would succeed. Just try again with LoadLibrary for good measure. */
+ if (m == NULL) m = LoadLibrary(libname);
+ return (void *) m;
}
void caml_dlclose(void * handle)