There is an oft-abused program named
rundll32.exe. Why does its name end in
32? Why not just call it
rundll.exe? (I will for the moment ignore the rude behavior of calling people stupid under the guise of asking a question.)
Because there needed to be a way to distinguish the 16-bit version from the 32-bit version.
Windows 95 had both
rundll.exe (the 16-bit version) and
rundll32.exe (the 32-bit version). Of course, with the gradual death of support for 16-bit Windows, the 16-bit
rundll.exe is now just a footnote in history, leaving just the 32-bit version.
But why did the two have to have different names? Why not just use the same name (
rundll.exe) for both, putting the 16-bit version in the 16-bit system directory and the 32-bit version in the 32-bit system directory?
Because Windows 95 didn’t have separate 16-bit and 32-bit system directories. There was just one system directory called
SYSTEM and everything hung out there, both 16-bit and 32-bit, like one big happy family.
Well, maybe not a happy family.
At any rate, when 64-bit Windows was introduced, the plan was not to do things the crazy mishmash way and instead separate the 32-bit files into one directory and the 64-bit files into a different directory. That way, no files needed to be renamed, and your batch file that ran
rundll32.exe with some goofy command line still worked, even on 64-bit Windows.