user32.dll是msdn所说的"WinApi"吗?

Is user32.dll the "WinApi" msdn speaks of?

在下面的代码中,

using System.Runtime.InteropServices;
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint cButtons, uint dwExtraInfo);

我用 google 搜索了 user32.dll 的 "mouse_event" 函数,得到了 this。 导入 user32.dll 是否等同于引用 Win32 API,使所述文档成为其他函数及其参数信息的有效资源?为什么 "user32.dll" 会在 "c# bear the function names of what is consistently referred to elsewhere as "WINAPI" 或 "WIN32" 中?

Microsoft 所说的 "Win32 API" 是 windows 操作系统的接口。与 OS 的任何交互(创建 windows、打开文件、访问网络等)都需要通过任何这些有据可查的函数调用。许多 C# 函数在幕后实际上是这些操作系统函数的包装器实现。虽然一些更具体的方法没有 C# 等效方法,但您仍然可以使用您提供的代码(使用 [DllImport] 属性)来访问它们。

由于遗留原因,Win32 API 主要由三个文件组成:kernel32.dll(文件 io/synchronisations)gdi32.dll(用户界面)和 user32.dll(更多用户界面)。这三个库几乎包括构成 API 的所有功能。随着时间的推移添加并用于特定目的的其他库。

(注意:dll 本身不再做太多事情。在当前的实现中,它们只是其他库的包装器,但从应用程序的角度来看,这无关紧要)