是否有可从 USER32.DLL 导入所有内容的 C# 即用型 class?
Is there a C# ready-to-use class that imports everything from USER32.DLL?
我厌倦了查找方法签名。我宁愿只输入类似 User32.SendMessage...
的内容。有这样的吗?
基本上有一个静态 class 和一堆定义,如 :
[DllImport("user32.dll")]
public static extern bool SetParent(int hWndChild, int hWndNewParent);
没有内置的 class 或静态库可以做到这一点。但是,您可以尝试 google 搜索一些免费库,甚至可以编写自己的实现。
事实是,user32.dll 是 win32 api 的一部分,它最初是为 C++ 应用程序设计的。当 Microsoft 推出 .NET(不久之后推出 C#)时,他们没有提供本机支持 - 为了 运行 .NET 应用程序,您需要 .NET dll 二进制文件。
因此,在 Microsoft 决定纠正此问题之前,您将不得不坚持使用一堆定义。
不要这样做。
user32.dll 在 Windows 的不同版本中不包含相同的功能。如果您只是一揽子导入所有内容,您很可能会确保您的程序只能 运行 在您当前使用的 Windows 的特定版本上。
每次导入本机函数时,您都应该检查它来自哪个版本 - 并确定它是否是您可以接受的依赖项。
我厌倦了查找方法签名。我宁愿只输入类似 User32.SendMessage...
的内容。有这样的吗?
基本上有一个静态 class 和一堆定义,如 :
[DllImport("user32.dll")]
public static extern bool SetParent(int hWndChild, int hWndNewParent);
没有内置的 class 或静态库可以做到这一点。但是,您可以尝试 google 搜索一些免费库,甚至可以编写自己的实现。
事实是,user32.dll 是 win32 api 的一部分,它最初是为 C++ 应用程序设计的。当 Microsoft 推出 .NET(不久之后推出 C#)时,他们没有提供本机支持 - 为了 运行 .NET 应用程序,您需要 .NET dll 二进制文件。
因此,在 Microsoft 决定纠正此问题之前,您将不得不坚持使用一堆定义。
不要这样做。
user32.dll 在 Windows 的不同版本中不包含相同的功能。如果您只是一揽子导入所有内容,您很可能会确保您的程序只能 运行 在您当前使用的 Windows 的特定版本上。
每次导入本机函数时,您都应该检查它来自哪个版本 - 并确定它是否是您可以接受的依赖项。