9

I think under windows x64, it still uses user32.dll and a bunch of other 32 bit libraries. Why there is no user64.dll?

Adam Lee
  • 24,710
  • 51
  • 156
  • 236

2 Answers2

19

C:\Windows\System32\user32.dll is a 64-bit library.
The 32-bit version is in C:\Windows\SysWOW64\user32.dll.

They can't change any names because that would break all sorts of programs with hard-coded paths.

SLaks
  • 868,454
  • 176
  • 1,908
  • 1,964
2

The names "user32" and "system32" and so on existed long before the modern 64-bit editions of Windows. The names were intended to distinguish them from the 16-bit versions, not from the 64-bit versions. On 64-bit Windows, it's still not 16-bit, so it's still "system32", "user32", and so on.

Nobody planned it that way, it just happened.

David Schwartz
  • 179,497
  • 17
  • 214
  • 278
  • Change dll filename will create trouble linking / loading dlls have to handle 32/64 with different names every time. The OS simply redirects system folders when a program is running in 32-bit mode. – linquize Feb 23 '12 at 04:49