首页 > 编程语言 >C#_Win32_PInvoke源码生成器

C#_Win32_PInvoke源码生成器

时间:2023-12-16 12:11:40浏览次数:52  
标签:C# 生成器 Win32 Windows 源码 PInvoke using

介绍

一个源代码生成器,用于向 C#项目添加一组用户定义的 Win32 P/Invoke 方法和相关的类型。

链接地址: https://github.com/microsoft/CsWin32

还在手动添加平台调用的代码或者增加无用的程序集?微软的官方解决方案来了!

特色

  • 快速将 P/Invoke 方法和相关类型添加到您的 C#项目。
  • 没有笨重的程序集,按需使用
  • 自动生成安全的类型 SafeHandle
  • 基于微软的官方链接生成 xml 文档和接口注释

image

先决条件

The .NET 5 SDK or Visual Studio 2019 Update 8 (16.8) (具体看自己 Github 上的说明吧)

使用方法

  1. 安装 nuget 包
    dotnet add package Microsoft.Windows.CsWin32 --prerelease

  2. 项目根目录添加 NativeMethods.txt 每一行写一个接口保存即可
    image

  3. 调用 (MessageBox 演示)

    using Windows.Win32;
    using Windows.Win32.Foundation;
    using Windows.Win32.UI.WindowsAndMessaging;
    
    PInvoke.MessageBox(HWND.Null, "你好", "标题", MESSAGEBOX_STYLE.MB_OK);
    

标签:C#,生成器,Win32,Windows,源码,PInvoke,using
From: https://www.cnblogs.com/broadm/p/17904668.html

相关文章

  • Centos中Fail2ban配置
    安装可以使用源码编译官网或者yum安装安装(base)[root@wwwfail2ban]#yum-yinstallfail2ban配置#配置(base)[root@wwwfail2ban]#vimjail.conf加入以下内容42[ssh-iptables]43enabled=true44filter=sshd45action=iptables[name=SSH,port=ssh,pr......
  • 世微 DW01 锂电池保护IC 充电器检测过充保护
    一、描述   DW01A是一个锂电池保护电路,为避免锂电池因过充电、过放电、电流过大导致电池寿命缩短或电池被损坏而设计的。它具有高精确度的电压检测与时间延迟电路。  二、主要特点 工作电流低 过充检测4.3V,过充释放4.05V;过放检测2.4V,过放释放3.0V;过流检测0.15V,短......
  • H5628L 80V降压恒流IC 72V电动车前大灯驱动IC 输出9V 12V
    本文将介绍H5628L耐压100V降压恒流芯片的特点和应用,包括其80V降12V、降9V的降压能力,以及支持最大2.5A的电流。此外,文章还将阐述该芯片的电路保护和热性能等方面的优势。 H5628L是一款外围电路简单,采用VFPWM连续工作模式的非隔离式恒流LED驱动芯片。H5628L典型开关频率固定为130KHz......
  • 基于CW32F030单片机的便携式多功能测试笔
    一、产品背景在日常的硬件调试工作中,我们最常使用的仪器仪表可能就是万用表了,虽然万用表号称“万用”,但大部分时候,我们需要使用到的功能无非是电压测量和通断测量。作为调试的“得力干将”,万用表有时候也会存在一些缺点和局限性,比如:体积较大不便于携带、无法直接反应逻辑电平情况而......
  • IEC60730-1 Annex-H
    IEC-60730安全标准法规由国际电工委员会(IEC)制定,该安全标准定义了家用电器嵌入式控制软件与硬件安全操作的测试与检测方法,以确保家电中受控设备的安全操作。IEC-60730将家用电器分为3类:A类–不用于确保设备的安全性。例如:照明控制、湿度控制等。B类–用于防止受控设备的......
  • arcgis导出某个属性的栅格
    选中栅格特定属性想要导出时,无法选中“所选图形”【方法】spatialanalyst工具——提取分析——按属性提取......
  • 世微 锂电池保护IC DW01 充电器检测过充保护SOT23-6
    一、描述   DW01A是一个锂电池保护电路,为避免锂电池因过充电、过放电、电流过大导致电池寿命缩短或电池被损坏而设计的。它具有高精确度的电压检测与时间延迟电路。   二、主要特点 工作电流低 过充检测4.3V,过充释放4.05V;过放检测2.4V,过放释放3.0V;过流检......
  • KCP源码剖析和应用解析
     一,什么是KCPKCP是一个快速可靠的协议,基于UDP的类似TCP的协议。随着网络带宽的不断增大,在很多网络应用场景中,TCP的旧有特性对当今一些要求及时响应的网络要求不符合。而TCP又是嵌在操作系统内核中的模块,用户态软件不能够自定义来修改太多TCP的细节。所以推出了KCP以应对延迟越......
  • 保存/恢复cxGrid布局
    //恢复布局IniFileName:=ExtractFilePath(Application.ExeName)+'Layout/'+Self.Name+'.ini';ifFileExists(IniFileName)thenSelf.tvResult.RestoreFromIniFile(IniFileName)//从布局文件中恢复elsebeginSelf.tvResult.BeginUpdate;fori:=0toSelf.tvR......
  • [ARC124C] LCM of GCDs 题解
    题目跳转Fake_Solution前言[warning]:本题解的做法是错法,但是正确概率贼高。离谱的是正确率还可以叠加。正解是记搜,时间复杂度可以证明。正解看文末。思考众所周知一个公式:\[a\timesb=\operatorname{lcm}(a,b)\times\gcd(a,b)\]如果你不知道——自证吧,不难。于是,移一......