On 3/11/15 9:36 PM, David Cournapeau wrote:
Hi,
While looking at the import code of python for C extensions, I was
wondering why we pass a relative path instead of an absolute path to
LoadLibraryEx (see bottom for some context).
In python 2.7, the full path existence was even checked before calling
into LoadLibraryEx
(https://github.com/python/cpython/blob/2.7/Python/dynload_win.c#L189),
but it looks like this check was removed in python 3.x branch.
Is there any defined behaviour that depends on this path to be relative ?
My two cents. According to the MSDN documentation, passing a relative
path is actually undefined
https://msdn.microsoft.com/en-us/library/windows/desktop/ms684179%28v=vs.85%29.aspx
----------------------------
LOAD_WITH_ALTERED_SEARCH_PATH
0x00000008
If this value is used and lpFileName specifies an absolute path, the
system uses the alternate file search strategy discussed in the Remarks
section to find associated executable modules that the specified module
causes to be loaded. If this value is used and lpFileName specifies a
relative path, the behavior is undefined.
---------------------------
meaning that wpathname _must_ be absolute.
https://github.com/python/cpython/blob/master/Python/dynload_win.c#L222
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com