C#如何快速获取P/Invoke方法签名

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

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

最近在逛github时,发现了一个官方的项目,GitHub - dotnet/pinvoke: A library containing all P/Invoke code so you don't have to import it every time. Maintained and updated to support the latest Windows OS.,这个项目是流行操作系统的所有P/Invoke方法签名的库集合。

LibraryPackage nameDescription
advapi32.dllPInvoke.AdvApi32Windows Advanced Services
bcrypt.dllPInvoke.BCryptWindows Cryptography API: Next Generation
cabinet.dllPInvoke.CabinetCabinet API Functions
cfgmgr32.dllPInvoke.CfgMgr32Device and Driver Installation
crypt32.dllPInvoke.Crypt32Windows Cryptography API
DwmApi.dllPInvoke.DwmApiDesktop Window Manager
fusion.dllPInvoke.Fusion.NET Framework Fusion
gdi32.dllPInvoke.Gdi32Windows Graphics Device Interface
hid.dllPInvoke.HidWindows Human Interface Devices
iphlpapi.dllPInvoke.IPHlpApiIP Helper
kernel32.dllPInvoke.Kernel32Windows Kernel API
magnification.dllPInvoke.MagnificationWindows Magnification API
mscoree.dllPInvoke.MSCorEE.NET Framework CLR host
msi.dllPInvoke.MsiMicrosoft Installer
ncrypt.dllPInvoke.NCryptWindows Cryptography API: Next Generation
netapi32.dllPInvoke.NetApi32Network Management
newdev.dllPInvoke.NewDevDevice and Driver Installation
ntdll.dllPInvoke.NTDllWindows NTDll
psapi.dllPInvoke.PsapiWindows Process Status API
setupapi.dllPInvoke.SetupApiWindows setup API
SHCore.dllPInvoke.SHCoreWindows Shell
shell32.dllPInvoke.Shell32Windows Shell
user32.dllPInvoke.User32Windows User Interface
userenv.dllPInvoke.UserenvWindows User Environment
uxtheme.dllPInvoke.UxThemeWindows Visual Styles
winusb.dllPInvoke.WinUsbUSB Driver
WtsApi32.dllPInvoke.WtsApi32Windows Remote Desktop Services

例如要使用User32中的ShowWindow函数

1、导入Nuget包(PInvoke.User32)

2、使用

写在最后

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

2024.11.06更新

pinvoke项目已经废弃,使用CsWin32项目替代,使用方法跟上述基本一致。

CsWin32项目将不同的dll导出函数都放到一个包中,不需要再去使用对应dll的包。

nuget搜索CsWin32包使用即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

△曉風殘月〆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值