每隔几个月我就会发现自己需要从C#调用Win32。虽然我已经完成了十几次,但我通常会忘记确切的阴谋,所以我会在网上或旧代码中查找并找出我需要的DllImport语句等等。
我一个人吗?
是否有受制裁的“Win32”类,它具有整个Win32 API的必要声明?似乎应该有。也许我错过了什么。
答案 0 :(得分:8)
您可能会发现http://www.pinvoke.net有帮助。
此外,对于常见的Win32函数,您可以尝试P/Invoke Interop Assistant。
答案 1 :(得分:1)
没有受到制裁的Win32类,但http://www.pinvoke.net是这些事情的重要核心资源。
答案 2 :(得分:1)
这听起来像是一个开源项目的好主意。
/ em加上思考上限,并运行到pinvoke.net
答案 3 :(得分:1)
获取正确的DllImport语句很容易,就像每个人都说的那样,但是为了方便起见,我通常在C#类中包装我需要的Win32函数并编译到我的核心助手程序集中。所以下次我只是参考装配。因此,如果我需要一些Win32函数,如果不是我只是添加它,它可能已经在我的帮助库中了。
此外,我将返回代码映射到Exceptions,即如果HResult不为零,则抛出异常,因此我的C#应用程序不需要知道HResult或返回代码。
答案 4 :(得分:0)
答案 5 :(得分:0)
您可以使用Reflector并搜索Win32Native。它有许多可用于PInvoking的定义。