Kaydet (Commit) dadc824c authored tarafından Guido van Rossum's avatar Guido van Rossum

removed verbose decl; added win3.1 dynamic linking.

üst 40f470f7
...@@ -29,8 +29,6 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -29,8 +29,6 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include "osdefs.h" #include "osdefs.h"
#include "importdl.h" #include "importdl.h"
extern int verbose; /* Defined in pythonrun.c */
/* Explanation of some of the the various #defines used by dynamic linking... /* Explanation of some of the the various #defines used by dynamic linking...
symbol -- defined for: symbol -- defined for:
...@@ -41,6 +39,7 @@ extern int verbose; /* Defined in pythonrun.c */ ...@@ -41,6 +39,7 @@ extern int verbose; /* Defined in pythonrun.c */
USE_SHLIB -- SunOS or IRIX 5 (SVR4?) shared libraries USE_SHLIB -- SunOS or IRIX 5 (SVR4?) shared libraries
_AIX -- AIX style dynamic linking _AIX -- AIX style dynamic linking
NT -- NT style dynamic linking (using DLLs) NT -- NT style dynamic linking (using DLLs)
WIN16_DL -- Windows 16-bit dynamic linking (using DLLs)
_DL_FUNCPTR_DEFINED -- if the typedef dl_funcptr has been defined _DL_FUNCPTR_DEFINED -- if the typedef dl_funcptr has been defined
USE_MAC_DYNAMIC_LOADING -- Mac CFM shared libraries USE_MAC_DYNAMIC_LOADING -- Mac CFM shared libraries
SHORT_EXT -- short extension for dynamic module, e.g. ".so" SHORT_EXT -- short extension for dynamic module, e.g. ".so"
...@@ -79,7 +78,11 @@ typedef void (*dl_funcptr)(); ...@@ -79,7 +78,11 @@ typedef void (*dl_funcptr)();
#define NT #define NT
#endif #endif
#ifdef NT #ifdef MS_WIN16
#define WIN16_DL
#endif
#if defined(NT) || defined(WIN16_DL)
#define DYNAMIC_LINK #define DYNAMIC_LINK
#include <windows.h> #include <windows.h>
typedef FARPROC dl_funcptr; typedef FARPROC dl_funcptr;
...@@ -377,6 +380,19 @@ load_dynamic_module(name, pathname, fp) ...@@ -377,6 +380,19 @@ load_dynamic_module(name, pathname, fp)
p = GetProcAddress(hDLL, funcname); p = GetProcAddress(hDLL, funcname);
} }
#endif /* NT */ #endif /* NT */
#ifdef WIN16_DL
{
HINSTANCE hDLL;
hDLL = LoadLibrary(pathname);
if (hDLL < HINSTANCE_ERROR){
char errBuf[256];
sprintf(errBuf, "DLL load failed with error code %d", hDLL);
err_setstr(ImportError, errBuf);
return NULL;
}
p = GetProcAddress(hDLL, funcname);
}
#endif /* WIN16_DL */
#ifdef USE_DL #ifdef USE_DL
p = dl_loadmod(getprogramname(), pathname, funcname); p = dl_loadmod(getprogramname(), pathname, funcname);
#endif /* USE_DL */ #endif /* USE_DL */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment