[ACCEPTED]-C# PInvoking user32.dll on a 64 bit system-user32

Accepted answer
Score: 37

The name user32.dll is misleading. It's the 64 bit 5 version of user32.dll you're calling. The 64 bit version 4 is located at %windir%\System32\user32.dll.

A 32-bit version is included 3 for compatibility with 32-bit applications. It's 2 located at %windir%\SysWOW64\user32.dll. You can inspect them using 1 the dumpbin utility:

System32\user32.dll:

FILE HEADER VALUES
        8664 machine (x64)

SysWOW64\user32.dll:

FILE HEADER VALUES
         14C machine (x86)
Score: 1

There is no user64.dll for the exact same 7 reason you just described, .NET program 6 can be agnostic to CPU architecture so the 5 same code needs to work on x86 and x64.
If 4 you take your program to x86 platform, it 3 will still run without any modifications.
I 2 guess that when they named user32.dll, they 1 didn't have those scenarios in mind.

More Related questions