> so I tried doing > wine pywin32-212.win32-py2.6.exe > first. This fails immediately as described in > http://bugs.winehq.org/show_bug.cgi?id=13844 > It seems to terminate because it tries to get > a handle to the loaded copy of mscoree.dll > and fails (because there isn't one). > > The installer seems to have been created by python's distutils. > > Mark Hammond seems to be well aware of low level > issues that affect the installer, see e.g. > http://bugs.python.org/issue5075 > so perhaps he could explain why the installer expects > mscoree.dll to be resident... > >
This is explained here: http://bugs.winehq.org/show_bug.cgi?id=6880#c7 (I guess it's the same issue) Copy and paste: --- snip --- I've seen quite some applications that fail in the end like this one: 0009:Call kernel32.GetModuleHandleA(011bf1d4 "mscoree.dll") ret=00c5936f 0009:Ret kernel32.GetModuleHandleA() retval=00000000 ret=00c5936f Then ExitProcess. --- snip --- This has nothing to do with this bug. The application uses dynamic msvc 7.1 runtime, which implicitly pulls mscoree.dll in. Normally mscrt __crtExitProcess() calls just ExitProcess() but on newer versions a call to __crtCorExitProcess() is made to ensure proper shutdown of managed parts (even if you don't use managed = .NET code). CorExitProcess() basically does this: --- snip --- hModule = GetModuleHandle("mscoree.dll"); if (hModule != NULL) { pfn = (PFN_EXIT_PROCESS) GetProcAddress( hModule, "CorExitProcess"); if (pfn != NULL) pfn(status); } --- snip --- If mscoree module or the export is not found it causes no harm. It works as designed. The reason for this additional (implicit) shutdown code is you have no control whether a part of operation system or application dll (3rd party/injected) might pull in managed stuff thats why this code exists. Regards