I agree with Robin and Gordon's assessment. It's risky at best to distribute
system dll's with your application, and impossible to upgrade system dll's
on Win2K because of system file protection.


-----Original Message-----
From: Thomas Heller [mailto:thomas.heller at ion-tof.com]
Sent: Friday, March 02, 2001 8:03 AM
To: python-list at python.org
Subject: Re: Unresolved symbols in MSVCRT.DLL when running a py2exe
packaged program.

Here is a comment about a similar problem in
another py2exe-packed application, which
I received from Jeff Kunce:
I just tried runing a py2exe-packaged application on an older NT machine,
it choked with an "Entry Point Not Found" error on MSVCRT.dll
Well, I played with it some more and got it to work.

I simply excluded all the DLLs that are normally found in NTs system32
directory (MPR.dll, MSVCIRT.dll, MSVCRT.dll, NETAPI32.dll, NETRAP.dll,
SAMLIB.dll) - and it works now on the older machine.

It looks like there is no easy "good" solution to this problem. Here's a
comment by Gordon McMillan on the topic:

Search Discussions

  • Rolander, Dan at Mar 2, 2001 at 6:23 pm
    The problem with replacing individual DLLs is that they come in matched
    sets. Unless you replace the whole set bad things can happen. It is often
    easiest to install a service pack or product that'll upgrade the DLLs for
    you. Or if you do use a professional installer like IPWI, load a merge
    module to handle it for you.

    This is an excellent article from Microsoft which explains the DLL Hell
    pitfalls and how Win2K is attempting to handle it (along with a
    troubleshooting tool for all Win32 systems):


    -----Original Message-----
    From: Tim Peters [mailto:tim.one at home.com]
    Sent: Friday, March 02, 2001 1:10 PM
    To: python-list at python.org
    Subject: RE: Unresolved symbols in MSVCRT.DLL when running a py2exe
    packaged program.

    I disagree.

    You can distribute system dll's. You are expected to, and sometimes you
    have to. You must insure that the version you load is at least
    equal to the version that you linked against.

    I have done this (distribute system DLL's) on all windows except WinME and
    the 16bit ones. Unfortunately I can't say how I did it precisely, because
    I just used InstallShield.
    And Python just uses the Wise installer. They aren't that fancy under the
    covers, though -- they just "follow the rules", checking version numbers,
    bumping refcounts on refcounted DLLs, and arranging for a reboot if they
    to replace something. But that stuff is ineffective on the newer systems
    with SFP.
    But I believe that, where SFP exists, you must use specific and new
    API's to replace DLL's, otherwise the system will back out your changes.
    My understanding is that SFP isn't so easily fooled; e.g.,



    SFP won't allow replacement of protected files via just using API tricks; it
    also sucks in a digital signature scheme, and only MS can supply signatures
    that work.
    One solution is to specify the changes in an .INF file and let the system
    worry about these details (but this has its limitations).

    I assume that Python itself updates the MSVCRT.dll.
    The PythonLabs Windows installer tries to, yes.
    Might look at how it does it on Win2K.
    My understanding is that it can't (but Win2K ships with a "good enough" set
    of DLLs, so the version check shouldn't trigger there -- yet).

    BTW, I'm *glad* MS is doing SFP! Whatever Windows Life may be in theory,
    DLLs in practice cannot be mixed and matched -- you need a self-consistent
    set else Very Strange Things Happen. And with about 1,000 DLLs under a
    typical Windows system directory, that's just impossible for app developers
    to keep straight. May well be impossible for MS to keep straight too, but
    least it's no longer impossible for them to *try* to keep 'em straight now.

    something-to-ponder-each-time-your-win9x-crashes-ly y'rs - tim


    From adaminthedomaindevtty.net Sat Mar 3 07:15:45 2001
    From: adaminthedomaindevtty.net (Adam Logghe)
    Date: Fri, 2 Mar 2001 22:15:45 -0800
    Subject: Editing Python source as XML?
    References: <mailman.983546704.10789.python-list@python.org>
    Message-ID: <3a9fe475_1@news.nwlink.com>

    It sounds like the feature you are really looking for is frequently called
    "code folding".

    I also find it to be very useful. You have many options in editors
    unfortunately IDLE does not yet support code folding.

    www.activestate.com has a project called "Komodo" which is written with a
    combination of the Mozilla codebase and Python (my understanding is that
    originally this was also to have a substantial portion written in Perl but
    the developers could code so much faster in Python that Perl ended up as a
    minor part). Despite some primitive features I have begun to use this
    full-time, I find it the easiest to use for editing multiple files. I'm
    hoping they start supporting XML folding as well.

    www.activestate.com also supports "PythonWin" which is basically a Windows
    specific enhanced version of IDLE.

    http://archaeopteryx.com/ is selling an Editor for Linux which also supports
    code folding and looks very capable. It is available for free if you are
    using it to develop free software.

    I know I am missing one more fairly significant editor, I am sure someone
    else will point that out (extra points for not mentioning vi or emacs).

    By the way, there are several shareware editors available that support
    Python and code folding. Search on hotfiles.com

    in the domain devtty.net

    "Steven Haryanto" <steven at haryan.to> wrote in message
    news:mailman.983546704.10789.python-list at python.org...
    A recent experience of having to modify a long C source file has
    led me to wonder whether there are any tool/effort towards editing
    Python source code as XML or other form of structured document.

    What I would like is an editor that presents the source file as a
    tree outline, where I can collapse selected class or function
    definition body, certain long if's/for's, some section of code,
    view/hide the asserts, etc. So then I only have to deal with the
    section I am concentrating with and don't have look at other
    distracting parts (especially in C with all those #ifdef/#endif's,

    I visited conglomerate.org some months ago, and it seems the
    project has been abandoned.


Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppython-list @
postedMar 2, '01 at 1:15p
activeMar 2, '01 at 6:23p

1 user in discussion

Rolander, Dan: 2 posts



site design / logo © 2022 Grokbase