P/Invoke各种总结(九、如何快速获取P/Invoke方法签名)

使用API函数已经好几年了,封装函数签名基本是参照MSDN上的文档,然后再做数据类型对应。

虽然有 pinvoke.net 这个网站,但基本很少使用。一方面是想多动手,另一方面是因为各种数据类型基本都用过了,都能自己在C#中 对应 起来。

 

最近在逛github时,发现了一个官方的项目,https://github.com/dotnet/pinvoke,这个项目是流行操作系统的所有P/Invoke方法签名的库集合。

 

LibraryPackage nameDescription
advapi32.dll PInvoke.AdvApi32 Windows Advanced Services
bcrypt.dll PInvoke.BCrypt Windows Cryptography API: Next Generation
cabinet.dll PInvoke.Cabinet Cabinet API Functions
cfgmgr32.dll PInvoke.CfgMgr32 Device and Driver Installation
crypt32.dll PInvoke.Crypt32 Windows Cryptography API
DwmApi.dll PInvoke.DwmApi Desktop Window Manager
fusion.dll PInvoke.Fusion .NET Framework Fusion
gdi32.dll PInvoke.Gdi32 Windows Graphics Device Interface
hid.dll PInvoke.Hid Windows Human Interface Devices
iphlpapi.dll PInvoke.IPHlpApi IP Helper
kernel32.dll PInvoke.Kernel32 Windows Kernel API
magnification.dll PInvoke.Magnification Windows Magnification API
mscoree.dll PInvoke.MSCorEE .NET Framework CLR host
msi.dll PInvoke.Msi Microsoft Installer
ncrypt.dll PInvoke.NCrypt Windows Cryptography API: Next Generation
netapi32.dll PInvoke.NetApi32 Network Management
newdev.dll PInvoke.NewDev Device and Driver Installation
ntdll.dll PInvoke.NTDll Windows NTDll
psapi.dll PInvoke.Psapi Windows Process Status API
setupapi.dll PInvoke.SetupApi Windows setup API
SHCore.dll PInvoke.SHCore Windows Shell
shell32.dll PInvoke.Shell32 Windows Shell
user32.dll PInvoke.User32 Windows User Interface
userenv.dll PInvoke.Userenv Windows User Environment
uxtheme.dll PInvoke.UxTheme Windows Visual Styles
winusb.dll PInvoke.WinUsb USB Driver
WtsApi32.dll PInvoke.WtsApi32 Windows Remote Desktop Services

例如要使用User32中的ShowWindow函数

1、导入Nuget包(PInvoke.User32)

 

2、使用

 

写在最后

有了这个项目,以后调用API函数可以更方便。最重要的是,官方提供了函数签名示例,我们可以从里面学到很多东西。

这个项目已经发布1年多了,我今天才知道

posted @ 2021-01-31 09:28  zhaotianff  阅读(359)  评论(0编辑  收藏  举报