summaryrefslogtreecommitdiffstats
path: root/private/crt32/exec/loaddll.c
diff options
context:
space:
mode:
Diffstat (limited to 'private/crt32/exec/loaddll.c')
-rw-r--r--private/crt32/exec/loaddll.c70
1 files changed, 70 insertions, 0 deletions
diff --git a/private/crt32/exec/loaddll.c b/private/crt32/exec/loaddll.c
new file mode 100644
index 000000000..a6f41b7e2
--- /dev/null
+++ b/private/crt32/exec/loaddll.c
@@ -0,0 +1,70 @@
+/***
+*loaddll.c - load or free a Dynamic Link Library
+*
+* Copyright (c) 1991, Microsoft Corporation. All rights reserved.
+*
+*Purpose:
+* defines _loaddll() and _unloaddll() - load and unload DLL
+*
+*Revision History:
+* 08-21-91 BWM Wrote module.
+*
+*******************************************************************************/
+
+#include <cruntime.h>
+#include <oscalls.h>
+#include <assert.h>
+#include <stdlib.h>
+#include <process.h>
+
+#if !defined(_WIN32_)
+#error ERROR - ONLY WIN32 TARGET SUPPORTED!
+#endif
+
+/***
+*int _loaddll(filename) - Load a dll
+*
+*Purpose:
+* Load a DLL into memory
+*
+*Entry:
+* char *filename - file to load
+*
+*Exit:
+* returns a unique DLL (module) handle if succeeds
+* returns 0 if fails
+*
+*Exceptions:
+*
+*******************************************************************************/
+
+int _CALLTYPE1 _loaddll(char * szName)
+{
+ return ((int)LoadLibrary(szName));
+}
+
+/***
+*int _unloaddll(handle) - Unload a dll
+*
+*Purpose:
+* Unloads a DLL. The resources of the DLL will be freed if no other
+* processes are using it.
+*
+*Entry:
+* int handle - handle from _loaddll
+*
+*Exit:
+* returns 0 if succeeds
+* returns DOS error if fails
+*
+*Exceptions:
+*
+*******************************************************************************/
+
+int _CALLTYPE1 _unloaddll(int hMod)
+{
+ if (!FreeLibrary((HANDLE)hMod)) {
+ return ((int)GetLastError());
+ }
+ return (0);
+}