Thanks for your answer Visual Studio 2008 still used the stupid "side-by-side" DLL installation > technique. What that means is that compiler doesn't just embed a link > to MSVCR90.dll -- it embeds a link to a specific version of > MSVCR90.dll. (As of today, there are SIX such versions.) Side-by-side > DLLs are intended to be installed centrally, in the \Windows\WinSxS > directory tree. If the version you need is in the central repository, > it will use that one. Otherwise, it looks elsewhere, including in a > subdirectory of the application, assuming the manifest allows that. > > So, the likely story here is that one of your machines has the latest > Visual Studio 2008 Redistributable Runtime installed, and the other does > not. >
I don't think this is the issue. Here is a excerpt from the Dependency Walker log: LoadLibraryExW("server.dll", 0x00000000, LOAD_WITH_ALTERED_SEARCH_PATH) called from "c:\windows\syswow64\REGSVR32.EXE" at address 0x00B720FF by thread 1. Loaded "c:\proj_py\gtxl\vba\dist_a\SERVER.DLL" at address 0x10000000 by thread 1. Successfully hooked module. Loaded "c:\windows\winsxs\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_50934f2ebcb7eb57\MSVCR90.DLL" at address 0x74580000 by thread 1. Successfully hooked module. I see this in the logs obtained when registering both versions of my DLL (one complied on each machine). However, in the log of the version that fails I see this a little later on LoadLibraryA("msvcr90.dll") called from "c:\proj_py\gtxl\vba\dist_b\_CTYPES.PYD" at address 0x1D1A9742 by thread 1. Loaded "c:\program files (x86)\intel\icls client\MSVCR90.DLL" at address 0x59090000 by thread 1. Successfully hooked module. So, for some reason this other version is also being loaded. That leads to subsequent errors. When I hide the intel files I see this instead of the above (and, although the second line shows an error, the DLL registration proceeds successfully) LoadLibraryA("msvcr90.dll") called from "c:\proj_py\gtxl\vba\dist_b\_CTYPES.PYD" at address 0x1D1A9742 by thread 1. LoadLibraryA("msvcr90.dll") returned NULL by thread 1. Error: %1 is not a valid Win32 application (193). I don't know what to make of this. Why would the LoadLibrary call from _ctypes.pyd not be directed to the DLL in winsxs as well?
_______________________________________________ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32