Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why windows 64 still makes use of user32.dll etc?

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

like image 376
Adam Lee Avatar asked Feb 07 '12 00:02

Adam Lee


People also ask

What is the purpose of USER32 DLL?

USER32. DLL implements the Windows USER component that creates and manipulates the standard elements of the Windows user interface, such as the desktop, windows, and menus. It thus enables programs to implement a graphical user interface (GUI) that matches the Windows look and feel.

Can 64 bit EXE use 32 bit DLL?

On 64-bit Windows, a 64-bit process cannot load a 32-bit dynamic-link library (DLL). Additionally, a 32-bit process cannot load a 64-bit DLL. However, 64-bit Windows supports remote procedure calls (RPC) between 64-bit and 32-bit processes (both on the same computer and across computers).

What is the difference between 32 bit and 64 bit DLL?

If the first DLL in the path is 32 bit and your app is 32 bit, then the DLL load will work. If the app is 64 bit, it will fail to load the DLL and the process will abort. If you want two DLLs to coexist on the system path, you need to give them unique file names.

Is there a user64 DLL?

There is no user64. dll for the exact same reason you just described, . NET program can be agnostic to CPU architecture so the same code needs to work on x86 and x64. If you take your program to x86 platform, it will still run without any modifications.


1 Answers

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.

like image 177
SLaks Avatar answered Nov 07 '22 11:11

SLaks