[Python-Dev] DLL in the system directory on Windows.

Mark Hammond mhammond@skippinet.com.au
Wed, 5 Apr 2000 09:08:58 +1000


> > Where should I put tk83.dll etc.?  In the Python\DLLs
> directory, where
> > _tkinter.pyd also lives?
>
> Won't work (unless there are some tricks in MSVC 6 I don't
> know about). Assuming no one is crazy enough to use Tk in a
> COM server, (or rather, that their insanity need not be catered
> to), then I'd vote for the directory where python.exe and
> pythonw.exe live.

What we can do is have Python itself use LoadLibraryEx() to load the
.pyd files.  This _will_ allow any dependant DLLs to be found in the
same directory as the .pyd.  [And as I mentioned, if the whole world
would use LoadLibraryEx(), our problem would go away]

LoadLibraryEx() is documented as working on all Win9x and NT from
3.1.

From the LoadLibraryEx() documentation:
--
If a path [to the DLL] is specified, and the dwFlags parameter is
set to LOAD_WITH_ALTERED_SEARCH_PATH, the LoadLibraryEx function
uses an alternate file search strategy to find any executable
modules that the specified module causes to be loaded. This
alternate strategy searches for a file in the following sequence:

* The directory specified by the lpLibFileName path. In other words,
the directory that the specified executable module is in.
* [The search path as described for LoadLibrary()]
--

Id be happy to knock up a patch - would be quite trivial...

Mark.