Wine's C:\windows\system32 directory has 64bit dlls with WINEARCH=win64

Questions about Wine on Linux
Post Reply
ahmedgomaa
Level 1
Level 1
Posts: 5
Joined: Sun Jan 09, 2022 7:02 am

Wine's C:\windows\system32 directory has 64bit dlls with WINEARCH=win64

Post by ahmedgomaa »

While I was using one of my applications that loads C:\windows\system32\msvcrt.dll,
It supposed to found the 32bit dll of msvcrt under system32 directory,

But I found that C:\windows\system32\msvcrt.dll is a 64bit dll!

Note that:
I'm using Wine 7.0 rc4, and my WINEARCH=win64.
User avatar
dimesio
Moderator
Moderator
Posts: 13211
Joined: Tue Mar 25, 2008 10:30 pm

Re: Wine's C:\windows\system32 directory has 64bit dlls with WINEARCH=win64

Post by dimesio »

That's normal, and how it is on Windows, too: 64 bit dlls are in system32; 32 bit dlls are in SysWoW64.
ahmedgomaa
Level 1
Level 1
Posts: 5
Joined: Sun Jan 09, 2022 7:02 am

Re: Wine's C:\windows\system32 directory has 64bit dlls with WINEARCH=win64

Post by ahmedgomaa »

dimesio wrote: Wed Apr 03, 2024 6:02 am That's normal, and how it is on Windows, too: 64 bit dlls are in system32; 32 bit dlls are in SysWoW64.
Maybe there's something I didn't get, I see my Windows 10, and 11, the 32bit dlls are under system32 directory, and 64bit ones are under SysWoW64.

For example, msvcrt.dll:

Code: Select all

$ file /c/Windows/System32/msvcrt.dll
/c/Windows/System32/msvcrt.dll: PE32 executable for MS Windows (DLL) (GUI) Intel 80386 32-bit
It's a 32bit dll under System32 on my native Windows.
ahmedgomaa
Level 1
Level 1
Posts: 5
Joined: Sun Jan 09, 2022 7:02 am

Re: Wine's C:\windows\system32 directory has 64bit dlls with WINEARCH=win64

Post by ahmedgomaa »

Any updates?
XP100
Level 1
Level 1
Posts: 8
Joined: Mon Apr 29, 2024 2:48 pm

Re: Wine's C:\windows\system32 directory has 64bit dlls with WINEARCH=win64

Post by XP100 »

System32 is for 64-bit files.
SysWOW64 is for 32-bit files.

Microsoft is so good at naming things.

If your application is really 32 bit, then Windows should give it the 32-bit DLL from SysWOW64 automatically.

Don't use "file". Maybe try "dumpbin.exe".

Code: Select all

dumpbin.exe /headers C:\Windows\System32\msvcrt.dll
Microsoft (R) COFF/PE Dumper Version 14.38.33135.0
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file C:\Windows\System32\msvcrt.dll

PE signature found

File Type: DLL

FILE HEADER VALUES
            8664 machine (x64)
               7 number of sections
        657B2709 time date stamp
               0 file pointer to symbol table
               0 number of symbols
              F0 size of optional header
            2022 characteristics
                   Executable
                   Application can handle large (>2GB) addresses
                   DLL

Code: Select all

dumpbin.exe /headers C:\Windows\SysWOW64\msvcrt.dll
Microsoft (R) COFF/PE Dumper Version 14.38.33135.0
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file C:\Windows\SysWOW64\msvcrt.dll

PE signature found

File Type: DLL

FILE HEADER VALUES
             14C machine (x86)
               5 number of sections
        D9BF2A9A time date stamp
               0 file pointer to symbol table
               0 number of symbols
              E0 size of optional header
            2102 characteristics
                   Executable
                   32 bit word machine
                   DLL
Post Reply