Mark Hammond wrote: > > > abc/ > > __init__.py > > mxABC.pyd > > mamba.dll > > > > mxABC.pyd needs mamba.dll. > > > > > My Win98 box uses absolute paths for all imports when using -vv > > > > Are you sure ? Please CD to the C:\Python21 dir and then try > > Right - I am with you now... > > > importing extensions using these relative paths. I think we could > > solve the problem by making the pathname which is passed to > > LoadLibraryEx() in dynload_win.c absolute. > > Just calling GetFullPathName() before the LoadLibEx() would seem a > reasonable and appropriate patch. Keeps it a long way from the "*in > general*" Guido was concerned about, and sounds low-risk to me! > > Ahh - Guido just OK'd it, so go for it ;-) Here's a stab at a patch. Could you review it and test it ? I don't have enough knowledge of win32 for this... dynload_win.c: ... #ifdef MS_WIN32 { HINSTANCE hDLL; char pathbuf[260]; LPTSTR *dummy; if (strchr(pathname, '\\') == NULL && strchr(pathname, '/') == NULL) { /* Prefix bare filename with ".\" */ char *p = pathbuf; *p = '\0'; _getcwd(pathbuf, sizeof pathbuf); if (*p != '\0' && p[1] == ':') p += 2; sprintf(p, ".\\%-.255s", pathname); pathname = pathbuf; } /* Convert to full pathname; we ignore errors to maintain b/w compatibility here. */ if (GetFullPathName(pathname, sizeof(pathbuf), pathbuf, &dummy)) pathname = pathbuf; /* Look for dependent DLLs in directory of pathname first */ /* XXX This call doesn't exist in Windows CE */ if (pathname) hDLL = LoadLibraryEx(pathname, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); if (hDLL == NULL) { char errBuf[256]; unsigned int errorCode; ... Thanks, -- Marc-Andre Lemburg ______________________________________________________________________ Company & Consulting: http://www.egenix.com/ Python Software: http://www.lemburg.com/python/
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4