是否有一个C#即用型类从USER32.DLL导入所有内容?

时间:2015-01-14 06:54:59

标签: c# windows winapi interop user32

我厌倦了查找方法签名。我只想输入类似User32.SendMessage...的内容。有类似的东西吗?

基本上有一个带有一堆定义的静态类,如:

[DllImport("user32.dll")]
public static extern bool SetParent(int hWndChild, int hWndNewParent);

2 个答案:

答案 0 :(得分:3)

没有内置类或静态库来做到这一点。但是,您可以尝试谷歌搜索一些免费的库,甚至编写自己的实现。

问题是,user32.dll是win32 api的一部分,它最初用于C ++应用程序。当微软推出.NET(不久之后,C#),他们没有提供原生支持 - 为了运行.NET应用程序,你需要.NET dll二进制文件。

因此,在Microsoft决定纠正此问题之前,您必须坚持使用一堆定义。

答案 1 :(得分:3)

不要这样做。

user32.dll在不同版本的Windows中不包含相同的功能。如果您只是全部导入所有内容,则很可能确保您的程序只能在您当前使用的特定版本的Windows上运行。

每次导入本机函数时,都应该检查它来自哪个版本 - 并确定这是否是您可以使用的依赖项。