[python-win32] More info about Microsoft Foundation Classes (MFC)

Tim Roberts timr at probo.com
Thu Mar 29 13:15:09 EDT 2018


Thomas Pietrowski wrote:
>
> I have general questions about MFC and hope you can answer them.
> When compiling PyWin32 for Py2.7 and Py3.x I get successful builds,
> but setup.py can't find the MFC libraries,
> which are specified here:
> https://github.com/thopiekar/pywin32/blob/master/setup.py#L1059
> for Python 2.7, Python 3.3 and Python3.4. This happens while using
> Appveyor and I contacted them about these "missing" files.
> One of the developers contacted me back and asked, whether mfc90*.dll
> is really needed for Python2.7.
> I think the question is quite eligible: Why are exactly these versions
> of MFC libraries strictly specified here?
> Isn't it possible to take the latest version, which is available?
> (Which is there for Python3.5 and 3.6.)

No.  It may not be obvious, but Python itself it entirely implemented in
a DLL.  (Note that the "python.exe" command is only a couple dozen
kilobytes.)  That DLL links to the dynamic version of the C run-time
library.  To avoid conflicts in shared state and such, all of the DLLs
it calls must either use a static C run-time library, or the same
dynamic version that Python itself uses.  The same applies to MFC.  When
an application or DLL links with MFC, it links to a specific version
(e.g., mfc90.dll).  You can't substitute another.

-- 
Tim Roberts, timr at probo.com
Providenza & Boekelheide, Inc.



More information about the python-win32 mailing list