Unresolved symbols in MSVCRT.DLL when running a py2exe packaged program.

Tom NoSpam at NoSpam.com
Thu Mar 1 19:35:25 EST 2001


One difference (between the Win2K & WinNT machines) is the new system file
protection 'feature' in Win2K.  It is supposed to disallow inappropriate
updates to system DLL's (of which MSVCRT.DLL is one).  Another aspect of
this feature is that apps can load their own versions of system DLL's, so
multiple different versions MSVCRT.DLL can be memroy resident at the same
time (but not on NT, just 2K).

Someone suggested deleting the DLL to see if it is in use.  I'm not sure
about DLL's, but with drivers (.SYS) you can delete it even while it is in
use (wierd).  There are utilities around that will tell you what DLL's your
app has loaded.  Maybe even the sysinfo utility, included in Win2K, might
tell you this?

When you replace the MSVCRT.DLL in system32, you will have to reboot before
it takes effect.

Tom.

"Parzival Herzog" <parz at home.com> wrote in message
news:RKln6.6630$hn5.853203 at news1.rdc1.mb.home.com...
> I have a Python application (which uses the wxPython extension) that I
have
> packaged
> for distribution with py2exe.  The dfistributed app works on my own
> computer,
> and on another machine I have, which has never seen any Python software,
nor
> any
> development software (i.e. no dll's not a part of a standard Win2000
> installation are present).
>
> I delivered my app to my client, who is expected to modify some
> configuration code, then
> use py2exe to package the app, and run the packaged app on a server
machine.
> My client
> has a notebook computer, running Win NT (Sp 6), plus MsVc and assorted
> development tools.
> My app worked on that noebook, and py2exe again packaged the app and the
> package was
> copied to the server machine, a Win NT sp 6 desktop computer. When we
> attempted to
> start the app, it failed immediatly, with the message that the symbol
> ??_U at YAPAXI@Z could
> not be found in MSVCRT.DLL.
>
> That symbol is apperrently defined in the MSVCRT.DLL file in the py2exe
> package, but the
> MSVCRT.DLL in the package is not the same as MSVCRT.DLL in the windows
> system32
> directory, and that version of the dll appears to have the symbol
> ??2 at YAPAXCI@Z defined
> (what horrible identifiers!). So we assumed that instead of finding the
> py2exe supplied
> dll, the packaged python app is finding the other dll, which is much older
> (dated 1997).
> Of course, we don't have any way of determining the dll that is actually
> being searched).
> So, we attempted to replace the old MSVCRT, by installing a recent copy of
> MSVC++ 6.0.
> This indeed did replace the dll, replacing it with a version dated July 7,
> 2000. However,
> the problemwith the python app persisted exactly as before.
>
> What I can tell, with the computers I have available, is that the the
Python
> app works
> on three different machines, 2 running Windows 2000, with the latest
> MSVCRT.DLL
> and one running Win NT (sp 6), with an MSVCRT.DLL dated 1999. What I can't
> tell
> is whether or not the py2exe packeged MSVCRT.DLL is being used by the
python
> app,
> or the system32 dll that happens to be on the machine where the app is to
> run.
>
> Can anyone help me towards resolving this problem? Truly, I program in
> Python, because I
> really am far too stupid to cope with ??2 at YAPAXCI@Z missing symbol
problems,
> and I
> fancy that I shouldn't have to either. But I appear to be misguided, and I
> need some help.
>
> - Parzival
>
>
>
>





More information about the Python-list mailing list