[Bug 21790] 3D Rad demo "BeltBall" can't use its bundled mfc80u.dll (enhance assembly search sequence to include private assemblies in application subfolders)

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Oct 17 16:17:10 CDT 2011


http://bugs.winehq.org/show_bug.cgi?id=21790

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
                 CC|                            |focht at gmx.net
          Component|-unknown                    |loader
            Summary|3D Rad demo "BeltBall"      |3D Rad demo "BeltBall"
                   |can't use its bundled       |can't use its bundled
                   |mfc80u.dll?                 |mfc80u.dll (enhance
                   |                            |assembly search sequence to
                   |                            |include private assemblies
                   |                            |in application subfolders)
     Ever Confirmed|0                           |1

--- Comment #3 from Anastasius Focht <focht at gmx.net> 2011-10-17 16:17:10 CDT ---
Hello,

well the application developers decided to deploy the VC++ runtime as private
assemblies in application subfolders and not in global WinSxS store.

Wine currently only searches global shared assembly store and not in folders of
the application's directory structure.

See MSDN: msdn.microsoft.com/en-us/library/aa374224.aspx (Assembly Searching
Sequence)

A simplified assembly search sequence would be:

1) WinSxS folder
2) <appdir>\<assemblyname>.dll
3) <appdir>\<assemblyname>.manifest
4) <appdir>\<assemblyname>\<assemblyname>.dll
5) <appdir>\<assemblyname>\<assemblyname>.manifest
...

Interesting tidbit:

The application uses some sandboxing/app virtualization scheme similar to
Thinstall and Xenocode.
Judging from the mappings/sections its most likely "MoleBox".

The dll in question that has the MFC binding is not directly visible in
filesystem but mapped in memory.

MBX at 28@48E1E8_### (2 KiB in AppData folder) -> "C:\3D RAD GAMES\BELTBALL
V102\dll3impact.dll" (not present on disk)

Dump of dll manifest from memory:

--- snip ---
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC80.CRT"
version="8.0.50727.762" processorArchitecture="x86"
publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC80.MFC"
version="8.0.50727.762" processorArchitecture="x86"
publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
</assembly>
--- snip ---

$ wine --version
wine-1.3.30-205-g472a8f7

Regards

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
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