[Bug 50371] New: Multiple games and applications need 'mfc70.dll'

WineHQ Bugzilla wine-bugs at winehq.org
Mon Dec 21 06:34:12 CST 2020


https://bugs.winehq.org/show_bug.cgi?id=50371

            Bug ID: 50371
           Summary: Multiple games and applications need 'mfc70.dll'
           Product: Wine
           Version: 6.0-rc3
          Hardware: x86-64
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: mfc
          Assignee: wine-bugs at winehq.org
          Reporter: focht at gmx.net
      Distribution: ---

Hello folks,

to track applications that don't bundle it. Also to advertise the workaround
via 'winetricks' recipe that doesn't exist yet.

This bug is a placeholder - not for actual implementation. If you start wasting
time on this I'm not gonna talk to you anymore ;-)

Filter to search for existing MFC versions (different VC++ runtime versions):

https://bugs.winehq.org/buglist.cgi?component=mfc&product=Wine

---

Overview of several VC++ Runtime versions:

https://web.archive.org/web/20190916113215/http://www.tmurgent.com/AppVirt/VCRuntimes.aspx

https://web.archive.org/web/20201021070215/https://www.tmurgent.com/appv/en/resources/tools-downloads/tools-downloads-appv5/89-tools/app-v-5-tools/167-visual-studio-runtime-versions-chart

Part of Visual Studio (.NET) 2002.

Mentioned at least once in bug 2944 ("Gatan Digital Micrograph (non-demo) won't
work with wine 20050419").

All 'GDILeaks' example applications from bug 50369 - Multiple tools for viewing
GDI handles/resources list and GDI leak detection require support for
PEB->GdiSharedHandleTable (GDIView, GDILeaks) also need this.

*
https://docs.microsoft.com/en-us/archive/msdn-magazine/2003/january/detect-and-plug-gdi-leaks-with-two-powerful-tools-for-windows-xp
("Detect and Plug GDI Leaks in Your Code with Two Powerful Tools for Windows
XP")

Stable download link via Internet Archive:

https://web.archive.org/web/20170911002438/http://download.microsoft.com/download/c/0/b/c0b7c8fa-58f1-4815-aae7-ed18a4dc3f08/GDILeaks.exe

---

Fortunately I found the runtime libs are part of following downloads:

'Microsoft Visual Studio .NET 2002 Service Pack 1':

https://www.microsoft.com/en-us/download/details.aspx?id=22709

https://web.archive.org/web/20060509134332/http://download.microsoft.com/download/4/1/a/41a70f33-ee71-417c-b830-4d3bd0acac13/VS7.0sp1-KB837234-X86.exe

---

'Visual Studio .NET 2002 Service Pack 1 MFC70.DLL Security Update':

https://www.microsoft.com/en-us/download/details.aspx?id=3644

https://web.archive.org/web/20200618132846/https://download.microsoft.com/download/6/b/e/6be11d8a-e0c7-429c-ac8c-9860e313ced9/VS7.0sp1-KB924642-X86.exe

These installers require .NET Framework 1.1 but currently don't work due to
Wine bugs and also requiring a "fake" VS.NET 2002 installation.

The wrapper extracts a single .NET installer binary which contains all the
.CABs and metadata (patcher manifest etc.) in the assembly resources. It uses
.NET 'Microsoft.WindowsInstaller.Package' module for installation/extraction.

--- snip ---
...
  at XStart.get_CabinetType () [0x00042] in
<ad988f7701c54d98909e21aba2c9011f>:0
  at XStart.GetCabFiles (System.IO.Stream cabStream) [0x00007] in
<ad988f7701c54d98909e21aba2c9011f>:0
  at XStart.GetEmbeddedFileStream (System.String fileName) [0x000aa] in
<ad988f7701c54d98909e21aba2c9011f>:0
  at XStart.GetEmbeddedFileBytes (System.String fileName) [0x00000] in
<ad988f7701c54d98909e21aba2c9011f>:0
  at XStart.ResolveResourceAssembly (System.Object sender,
System.ResolveEventArgs args) [0x0006b] in <ad988f7701c54d98909e21aba2c9011f>:0
  at System.AppDomain.DoAssemblyResolve (System.String name,
System.Reflection.Assembly requestingAssembly, System.Boolean refonly)
[0x00075] in <7713cb95b33244ed9608bf0b23fbdce9>:0
  at (wrapper managed-to-native)
System.AppDomain.LoadAssembly(System.AppDomain,string,System.Security.Policy.Evidence,bool,System.Threading.StackCrawlMark&)
  at System.AppDomain.Load (System.String assemblyString,
System.Security.Policy.Evidence assemblySecurity, System.Boolean refonly,
System.Threading.StackCrawlMark& stackMark) [0x00021] in
<7713cb95b33244ed9608bf0b2
3fbdce9>:0
  at System.AppDomain.Load (System.String assemblyString) [0x00002] in
<7713cb95b33244ed9608bf0b23fbdce9>:0
  at (wrapper remoting-invoke-with-check) System.AppDomain.Load(string)
  at System.Reflection.Assembly.Load (System.String assemblyString) [0x00005]
in <7713cb95b33244ed9608bf0b23fbdce9>:0
  at XStart.Main (System.String[] args) [0x00000] in
<ad988f7701c54d98909e21aba2c9011f>:0
--- snip ---

To avoid installer prerequisites mess and multiple workarounds I provide you
with a simple command to extract the needed .CAB from the wrapped executables.

===

'Visual Studio .NET 2002 Service Pack 1':

--- snip ---
$ dd if=VS7.0sp1-KB837234-X86.exe of=files.cab skip=8167252 count=78272283
bs=1M iflag=skip_bytes,count_bytes
--- snip ---

Cabinet listing, filtered:

--- snip ---
$ cabextract -l files.cab | grep -i mfc70.*_dll

   1024000 | 20.01.2005 17:32:34 |
FL_mfc70_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
     40960 | 20.01.2005 17:38:14 |
FL_mfc70chs_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
     45056 | 20.01.2005 17:38:14 |
FL_mfc70cht_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
     61440 | 20.01.2005 17:38:12 |
FL_mfc70deu_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
     57344 | 20.01.2005 17:38:14 |
FL_mfc70enu_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
     61440 | 20.01.2005 17:38:14 |
FL_mfc70esp_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
     61440 | 20.01.2005 17:38:12 |
FL_mfc70fra_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
     61440 | 20.01.2005 17:38:14 |
FL_mfc70ita_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
     49152 | 20.01.2005 17:38:14 |
FL_mfc70jpn_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
     49152 | 20.01.2005 17:38:14 |
FL_mfc70kor_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
   1017344 | 20.01.2005 17:49:18 |
FL_mfc70u_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
   2067456 | 20.01.2005 17:33:02 |
FL_mfc70ud_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
   2072576 | 20.01.2005 17:31:56 |
mfc70d_dll_1_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
--- snip ---

'Visual Studio .NET 2002 Service Pack 1 Security update':

--- snip ---
$ dd if=VS7.0sp1-KB924642-X86.exe of=files2.cab skip=843993 count=64442759
bs=1M iflag=skip_bytes,count_bytes
--- snip ---

--- snip ---
$cabextract -l files2.cab | grep -i mfc70.*_dll

   1024000 | 25.08.2006 23:07:50 |
FL_mfc70_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
     40960 | 25.08.2006 23:15:46 |
FL_mfc70chs_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
     45056 | 25.08.2006 23:15:46 |
FL_mfc70cht_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
     61440 | 25.08.2006 23:15:44 |
FL_mfc70deu_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
     57344 | 25.08.2006 23:15:46 |
FL_mfc70enu_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
     61440 | 25.08.2006 23:15:46 |
FL_mfc70esp_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
     61440 | 25.08.2006 23:15:44 |
FL_mfc70fra_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
     61440 | 25.08.2006 23:15:46 |
FL_mfc70ita_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
     49152 | 25.08.2006 23:15:44 |
FL_mfc70jpn_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
     49152 | 25.08.2006 23:15:46 |
FL_mfc70kor_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
   1017344 | 25.08.2006 23:28:02 |
FL_mfc70u_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
   2067456 | 25.08.2006 23:08:16 |
FL_mfc70ud_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
   2072576 | 25.08.2006 23:07:14 |
mfc70d_dll_1_____X86.3643236F_FC70_11D3_A536_0090278A1BB8
--- snip ---

NOTE: It's 32-bit only by design.

I guess it makes sense to use the newer dlls from the 2006 security update in
the newly-to-be-created winetricks recipe. The update is also smaller.

$ sha1sum VS7.0sp1-KB*
7cad96556ca3bdc4b99e89937ea01552f2cb6a32  VS7.0sp1-KB837234-X86.exe
3b045ff8e64c2f78701a33ae09316c3b49238d9d  VS7.0sp1-KB924642-X86.exe

$ du -sh VS7.0sp1-KB*
83M    VS7.0sp1-KB837234-X86.exe
63M    VS7.0sp1-KB924642-X86.exe

$ wine --version
wine-6.0-rc3

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.


More information about the wine-bugs mailing list