C#P在64位系统上调用user32.dll

从64位应用程序中ping 64位Windows上的user32.dll是不对的? 我成功完成了很多次并且从未出现过错误,但这似乎是矛盾的。 我应该寻找user64.dll吗?

user32.dll这个名字具有误导性。 这是您正在调用的64位版本的user32.dll 。 64位版本位于%windir%\System32\user32.dll

包含32位版本,以便与32位应用程序兼容。 它位于%windir%\SysWOW64\user32.dll 。 您可以使用dumpbin实用程序检查它们:

SYSTEM32 \ user32.dll中:

 FILE HEADER VALUES 8664 machine (x64) 

Syswow64资料\ user32.dll中:

 FILE HEADER VALUES 14C machine (x86) 

没有user64.dll与你刚才描述的完全相同的原因,.net程序可以与cpu架构无关,所以相同的代码需要在x86和x64上工作。
如果您将程序带到x86平台,它仍然可以在没有任何修改的情况下运行。
我想当他们命名为user32.dll时,他们没有考虑到这些情况。