前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【推荐】.NET类库“Vanara”:简单易用的Windows API封装库

【推荐】.NET类库“Vanara”:简单易用的Windows API封装库

作者头像
沙漠尽头的狼
发布2021-12-01 16:16:15
1.6K0
发布2021-12-01 16:16:15
举报
文章被收录于专栏:Dotnet9

仓库地址:https://github.com/dahall/Vanara

一系列非常简单易用,对Windows API做了极好封装的.NET类库,几乎不用再写繁琐的Windows API转换函数了。

此项目包含各种.NET程序集,这些程序集包含来自Windows库的P/Invoke函数、接口、枚举和结构。每个程序集都与一个或几个紧密相关的库相关联。例如,Shlwapi.dll包含从Shlwapi.lib导出的所有函数;Kernel32.dll包含Kernel32.lib和kernelbase.lib的全部。

所有程序集都可通过NuGet获得,并提供针对.NET 2.0、3.5、4.0、4.5、Core 3.0、Core 3.1和.NET 5.0(v3.2.20中新增)的版本,并支持SourceLink[1]。在依赖项不允许的所有情况下,.NET Standard 2.0、.NET Core 2.0和2.1版本也包含在UWP和其他.NET Core及标准项目中。

在充分测试之后,这个项目每隔几周发布一次新版本。新的版本和发行说明一起被编目在Releases[2]部分,所有NuGet包都发布到nuget.org[3]。每个GitHub推送都会触发AppVeyor[4]构建。所有者感谢他们的免费开源帐户!文章开头显示了项目构建状态信息。AppVeyor源[5]用于构建NuGet包。

怎么用?

  1. 在Microsoft文档中查找所需的函数。请注意函数位于哪个库或DLL中。
  2. 查看下面的支持库表,确认Vanara库存在并具有您需要的函数(Windows API)。单击程序集链接将带您深入了解该程序集的覆盖范围。找到你的函数,如果有一个匹配的实现,它会出现在右边。您还可以使用GitHub的项目搜索(页面左上角)来搜索函数、方法或常量。确保选择“在此存储库中”。
  3. 通过NuGet将程序集添加到项目中。
  4. 要使用该功能,您可以:
    1. 直接调用var bret = Vanara.PInvoke.Kernel32.GetComputerName(sb, ref sbSz);
    1. 在C#6.0及更高版本下,使用static using指令并调用它:
代码语言:javascript
复制
using static Vanara.PInvoke.Kernel32;

var bret = GetComputerName(sb, ref sbSz);

5.在某些情况下,其中一个[支持程序集]中有一个对应的helper/wrapper类,特别是对于安全性、系统服务、窗体和Shell。转到他们的库页面(单击部分中的链接),浏览每个库中包含的类。

设计理念

  • 从单个DLL导入的所有函数都应放置到以DLL命名的单个程序集中。
    • (例如,程序集Vanara.PInvoke.Gdi32.dll承载系统目录中从gdi32.dll导出的所有函数和支持的枚举、常量和结构。)
  • 任何由许多库使用的结构、宏或枚举(非函数)都会放入Vanara.Core或'Vanara.PInvoke.Shared`库中。
    • (例如,宏HIWORD'和结构SIZE都在Vanara.PInvoke.Shared中,简化互操作调用和本机内存管理的类都在'Vanara.Core中)
  • 在项目中,所有构造都包含在一个以头文件(*.h)命名的文件中,其中这些结构在Windows API中定义。
    • (例如,在Vanara.PInvoke.Kernel32项目目录中,您将分别找到一个FileApi.cs、WinBase.cs和一个WinNT.cs文件,分别表示FileApi.h、WinBase.h和WinNT.h)
  • 如果直接解释结构或函数会导致内存泄漏或误用,我试图简化它的使用。
  • 在结构体总是通过引用传递,并且在需要清理内存分配的地方,我将结构体更改为实现IDispoable的类。
  • 尽可能,所有句柄都已转换为以Windows API句柄命名的SafeHandle派生工具。如果这些句柄需要调用函数以释放/关闭/销毁,则存在一个派生的SafeHANDLE,该函数将在disposal时执行该函数。
    • 例如,定义了HTOKENSafeHTOKEN在该句柄上调用CloseHandle自动释放。
  • 尽可能,分配调用方释放的内存的所有函数都使用安全的内存句柄。
  • 程序集中所有PInvoke调用都以'Vanara.PInvoke`为前缀。
  • 如果要将结构体作为常量传递到函数中,则使用in语句封装该结构体,该语句将通过引用传递结构体,而不需要ref关键字。
    • Windows API:BOOL MapDialogRect(HWND hDlg, LPRECT LPRECT)
    • Vanara:bool MapDialogRect(HWND hDlg, in RECT lpRect);
  • 如果有类或扩展使用PInvoke调用,则它们位于以'Vanara'前缀的包装程序集中,然后后跟该功能的逻辑名称。今天,它们是Core、Security、SystemServices、Windows.Forms和Windows.Shell。

支持的库

Library/DLL

Assembly

aclui.dll

Vanara.PInvoke.AclUI[6]

advapi32.dll, secur32.dll, authz.dll, sspicli.dll, schannel.dll

Vanara.PInvoke.Security[7]

cabinet.dll

Vanara.PInvoke.Cabinet[8]

CfgMgr32.dll

Vanara.PInvoke.CfgMgr32[9]

CldApi.dll

Vanara.PInvoke.CldApi[10]

comctl32.dll

Vanara.PInvoke.ComCtl32[11]

ComDlg32.dll

Vanara.PInvoke.ComDlg32[12]

credui.dll

Vanara.PInvoke.CredUI[13]

crypt32.dll, bcrypt.dll, ncrypt.dll, tokenbinding.dll, cryptui.dll, cryptnet.dll, cryptdlg.dll

Vanara.PInvoke.Cryptography[14]

d2d1.dll, dxgi.dll, dwrite.dll, windowscodecs.dll

Vanara.PInvoke.Graphics[15]

DbgHelp.dll, ImageHlp.dll

Vanara.PInvoke.DbgHelp[16]

Dhcpcsvc6.dll, Dhcpcsvc.dll

Vanara.PInvoke.Dhcp[17]

DnsApi.dll

Vanara.PInvoke.DnsApi[18]

Drt.dll

Vanara.PInvoke.Drt[19]

dwmapi.dll

Vanara.PInvoke.DwmApi[20]

FirewallApi.dll

Vanara.PInvoke.FirewallApi[21]

FunDisc.dll

Vanara.PInvoke.FunDisc[22]

gdi32.dll

Vanara.PInvoke.Gdi32[23]

imapi2.dll, imapi2fs.dll

Vanara.PInvoke.IMAPI[24]

iphlpapi.dll

Vanara.PInvoke.IpHlpApi[25]

IScsiDsc.dll

Vanara.PInvoke.IScsiDsc[26]

kernel32.dll, kernelbase.dll, normaliz.dll, vertdll.dll

Vanara.PInvoke.Kernel32[27]

ktmw32.dll

Vanara.PInvoke.KtmW32[28]

Lz32.dll

Vanara.PInvoke.Lz32[29]

magnification.dll

Vanara.PInvoke.Magnification[30]

mpr.dll

Vanara.PInvoke.Mpr[31]

msctf.dll, input.dll, msimtf.dll

Vanara.PInvoke.TextServicesFramework[32]

Msi.dll

Vanara.PInvoke.Msi[33]

avicap32.dll, avifil32.dll, msacm32.dll, msvfw32.dll, winmm.dll

Vanara.PInvoke.Multimedia[34]

netapi32.dll

Vanara.PInvoke.NetApi32[35]

netprofm.dll

Vanara.PInvoke.NetListMgr[36]

NewDev.dll

Vanara.PInvoke.NewDev[37]

ntdll.dll

Vanara.PInvoke.NTDll[38]

ntdsapi.dll

Vanara.PInvoke.NTDSApi[39]

ole32.dll, oleaut32.dll, propsys.dll

Vanara.PInvoke.Ole[40]

oleacc.dll

Vanara.PInvoke.Accessibility[41]

OleDlg.dll

Vanara.PInvoke.OleDlg[42]

opcservices.dll

Vanara.PInvoke.Opc[43]

P2P.dll

Vanara.PInvoke.P2P[44]

pdh.dll

Vanara.PInvoke.Pdh[45]

PeerDist.dll

Vanara.PInvoke.PeerDist[46]

powrprof.dll

Vanara.PInvoke.PowrProf[47]

ProjectedFSLib.dll

Vanara.PInvoke.ProjectedFSLib[48]

qmgr.dll

Vanara.PInvoke.BITS[49]

rpcrt4.dll

Vanara.PInvoke.Rpc[50]

RstrtMgr.dll

Vanara.PInvoke.RstrtMgr[51]

SearchApi

Vanara.PInvoke.SearchApi[52]

SetupAPI.dll

Vanara.PInvoke.SetupAPI[53]

SHCore.dll

Vanara.PInvoke.SHCore[54]

shell32.dll, url.dll

Vanara.PInvoke.Shell32[55]

shlwapi.dll

Vanara.PInvoke.ShlwApi[56]

taskschd.dll, mstask.dll

Vanara.PInvoke.TaskSchd[57]

UrlMon.dll

Vanara.PInvoke.UrlMon[58]

user32.dll

Vanara.PInvoke.User32[59]

UserEnv.dll

Vanara.PInvoke.UserEnv[60]

uxtheme.dll

Vanara.PInvoke.UxTheme[61]

Version.dll

Vanara.PInvoke.Version[62]

virtdisk.dll

Vanara.PInvoke.VirtDisk[63]

WcmApi.dll

Vanara.PInvoke.WcmApi[64]

WcnApi.dll

Vanara.PInvoke.WcnApi[65]

wer.dll

Vanara.PInvoke.Wer[66]

WinBio.dll

Vanara.PInvoke.WinBio[67]

wininet.dll

Vanara.PInvoke.WinINet[68]

winspool.drv, prntvpt.dll

Vanara.PInvoke.Printing[69]

wintrust.dll

Vanara.PInvoke.WinTrust[70]

WlanApi.dll, Wlanui.dll

Vanara.PInvoke.WlanApi[71]

ws2_32.dll

Vanara.PInvoke.Ws2_32[72]

WsmSvc.dll

Vanara.PInvoke.WsmSvc[73]

WTSApi32.dll

Vanara.PInvoke.WTSApi32[74]

支持的程序集

Assembly

Description

Vanara.BITS[75]

.NET classes to access Background Intelligent Transfer Service (BITS) functionality. Intelligently uses most recent library functions and gracefully fails when new features are not available on older OS versions.

Vanara.Core[76]

This library includes shared methods, structures and constants for use throughout the Vanara assemblies. Think of it as windows.h with some useful extensions. It includes:* Extension methods for working with enumerated types (enum), FILETIME, and method and property extractions via reflection* Extension and helper methods to marshaling structures arrays and strings* SafeHandle based classes for working with memory allocated via CoTaskMem, HGlobal, or Local calls that handles packing and extracting arrays, structures and raw memory* Safe pinning of objects in memory* Memory stream based on marshaled memory

Vanara.PInvoke.Shared[77]

Shared methods, structures and constants for use throughout the Vanara.PInvoke assemblies. Includes:* IEnumerable helpers for COM enumerations* Custom marshaler for CoTaskMem pointers* Enhanced error results classes for HRESULT, Win32Error and NTStatus* Standard windows.h macros (e.g. HIWORD, MAKELONG, etc.)* Overlapped method wrapper* Resource ID holder* Shared structures and enums (see release notes)

Vanara.Security[78]

Classes for security related items derived from the Vanara PInvoke libraries. Includes extension methods for Active Directory and access control classes, methods for working with accounts, UAC, privileges, system access, impersonation and SIDs, and a full LSA wrapper.

Vanara.SystemServices[79]

Classes for system related items derived from the Vanara PInvoke libraries. Includes extensions for Process (privileges and elavation), FileInfo (compression info), Shared Network Drives and Devices, and ServiceController (SetStartType) that pull extended information through native API calls.

Vanara.VirtualDisk[80]

.NET classes to manage Windows Virtual Storage (VHD and VHDX) using P/Invoke functions from VirtDisk.dll.

Vanara.Windows.Forms[81]

Classes for user interface related items derived from the Vanara PInvoke libraries. Includes extensions for almost all common controls to give post Vista capabilities, WinForms controls (panel, commandlink, enhanced combo boxes, IPAddress, split button, trackbar and themed controls), shutdown/restart/lock control, buffered painting, resource files, access control editor, simplifed designer framework for Windows.Forms.

Vanara.Windows.Shell[82]

Classes for Windows Shell items derived from the Vanara PInvoke libraries. Includes shell items, files, icons, links, and taskbar lists.

链接

  • Documentation[83]
  • Issues[84]

示例代码

There are numerous examples in the UnitTest[85] folder and in the WinClassicSamplesCS[86] project that recreates the Windows Samples in C# using Vanara.

参考资料

[1]

SourceLink: https://docs.microsoft.com/en-us/dotnet/standard/library-guidance/sourcelink

[2]

Releases: https://github.com/dahall/Vanara/releases

[3]

nuget.org: https://www.nuget.org/packages?q=dahall+Vanara

[4]

AppVeyor: https://ci.appveyor.com/project/dahall/vanara

[5]

AppVeyor源: https://ci.appveyor.com/nuget/vanara-prerelease

[6]

Vanara.PInvoke.AclUI: https://github.com/dahall/Vanara/blob/master/PInvoke/AclUI/CorrelationReport.md

[7]

Vanara.PInvoke.Security: https://github.com/dahall/Vanara/blob/master/PInvoke/Security/CorrelationReport.md

[8]

Vanara.PInvoke.Cabinet: https://github.com/dahall/Vanara/blob/master/PInvoke/Cabinet/CorrelationReport.md

[9]

Vanara.PInvoke.CfgMgr32: https://github.com/dahall/Vanara/blob/master/PInvoke/CfgMgr32/CorrelationReport.md

[10]

Vanara.PInvoke.CldApi: https://github.com/dahall/Vanara/blob/master/PInvoke/CldApi/CorrelationReport.md

[11]

Vanara.PInvoke.ComCtl32: https://github.com/dahall/Vanara/blob/master/PInvoke/ComCtl32/CorrelationReport.md

[12]

Vanara.PInvoke.ComDlg32: https://github.com/dahall/Vanara/blob/master/PInvoke/ComDlg32/CorrelationReport.md

[13]

Vanara.PInvoke.CredUI: https://github.com/dahall/Vanara/blob/master/PInvoke/CredUI/CorrelationReport.md

[14]

Vanara.PInvoke.Cryptography: https://github.com/dahall/Vanara/blob/master/PInvoke/Cryptography/CorrelationReport.md

[15]

Vanara.PInvoke.Graphics: https://github.com/dahall/Vanara/blob/master/PInvoke/Graphics/CorrelationReport.md

[16]

Vanara.PInvoke.DbgHelp: https://github.com/dahall/Vanara/blob/master/PInvoke/DbgHelp/CorrelationReport.md

[17]

Vanara.PInvoke.Dhcp: https://github.com/dahall/Vanara/blob/master/PInvoke/Dhcp/CorrelationReport.md

[18]

Vanara.PInvoke.DnsApi: https://github.com/dahall/Vanara/blob/master/PInvoke/DnsApi/CorrelationReport.md

[19]

Vanara.PInvoke.Drt: https://github.com/dahall/Vanara/blob/master/PInvoke/Drt/CorrelationReport.md

[20]

Vanara.PInvoke.DwmApi: https://github.com/dahall/Vanara/blob/master/PInvoke/DwmApi/CorrelationReport.md

[21]

Vanara.PInvoke.FirewallApi: https://github.com/dahall/Vanara/blob/master/PInvoke/FirewallApi/CorrelationReport.md

[22]

Vanara.PInvoke.FunDisc: https://github.com/dahall/Vanara/blob/master/PInvoke/FunDisc/CorrelationReport.md

[23]

Vanara.PInvoke.Gdi32: https://github.com/dahall/Vanara/blob/master/PInvoke/Gdi32/CorrelationReport.md

[24]

Vanara.PInvoke.IMAPI: https://github.com/dahall/Vanara/blob/master/PInvoke/IMAPI/CorrelationReport.md

[25]

Vanara.PInvoke.IpHlpApi: https://github.com/dahall/Vanara/blob/master/PInvoke/IpHlpApi/CorrelationReport.md

[26]

Vanara.PInvoke.IScsiDsc: https://github.com/dahall/Vanara/blob/master/PInvoke/IScsiDsc/CorrelationReport.md

[27]

Vanara.PInvoke.Kernel32: https://github.com/dahall/Vanara/blob/master/PInvoke/Kernel32/CorrelationReport.md

[28]

Vanara.PInvoke.KtmW32: https://github.com/dahall/Vanara/blob/master/PInvoke/KtmW32/CorrelationReport.md

[29]

Vanara.PInvoke.Lz32: https://github.com/dahall/Vanara/blob/master/PInvoke/Lz32/CorrelationReport.md

[30]

Vanara.PInvoke.Magnification: https://github.com/dahall/Vanara/blob/master/PInvoke/Magnification/CorrelationReport.md

[31]

Vanara.PInvoke.Mpr: https://github.com/dahall/Vanara/blob/master/PInvoke/Mpr/CorrelationReport.md

[32]

Vanara.PInvoke.TextServicesFramework: https://github.com/dahall/Vanara/blob/master/PInvoke/TextServicesFramework/CorrelationReport.md

[33]

Vanara.PInvoke.Msi: https://github.com/dahall/Vanara/blob/master/PInvoke/Msi/CorrelationReport.md

[34]

Vanara.PInvoke.Multimedia: https://github.com/dahall/Vanara/blob/master/PInvoke/Multimedia/CorrelationReport.md

[35]

Vanara.PInvoke.NetApi32: https://github.com/dahall/Vanara/blob/master/PInvoke/NetApi32/CorrelationReport.md

[36]

Vanara.PInvoke.NetListMgr: https://github.com/dahall/Vanara/blob/master/PInvoke/NetListMgr/CorrelationReport.md

[37]

Vanara.PInvoke.NewDev: https://github.com/dahall/Vanara/blob/master/PInvoke/NewDev/CorrelationReport.md

[38]

Vanara.PInvoke.NTDll: https://github.com/dahall/Vanara/blob/master/PInvoke/NtDll/CorrelationReport.md

[39]

Vanara.PInvoke.NTDSApi: https://github.com/dahall/Vanara/blob/master/PInvoke/NTDSApi/CorrelationReport.md

[40]

Vanara.PInvoke.Ole: https://github.com/dahall/Vanara/blob/master/PInvoke/Ole/CorrelationReport.md

[41]

Vanara.PInvoke.Accessibility: https://github.com/dahall/Vanara/blob/master/PInvoke/Accessibility/CorrelationReport.md

[42]

Vanara.PInvoke.OleDlg: https://github.com/dahall/Vanara/blob/master/PInvoke/OleDlg/CorrelationReport.md

[43]

Vanara.PInvoke.Opc: https://github.com/dahall/Vanara/blob/master/PInvoke/Opc/CorrelationReport.md

[44]

Vanara.PInvoke.P2P: https://github.com/dahall/Vanara/blob/master/PInvoke/P2P/CorrelationReport.md

[45]

Vanara.PInvoke.Pdh: https://github.com/dahall/Vanara/blob/master/PInvoke/Pdh/CorrelationReport.md

[46]

Vanara.PInvoke.PeerDist: https://github.com/dahall/Vanara/blob/master/PInvoke/PeerDist/CorrelationReport.md

[47]

Vanara.PInvoke.PowrProf: https://github.com/dahall/Vanara/blob/master/PInvoke/PowrProf/CorrelationReport.md

[48]

Vanara.PInvoke.ProjectedFSLib: https://github.com/dahall/Vanara/blob/master/PInvoke/ProjectedFSLib/CorrelationReport.md

[49]

Vanara.PInvoke.BITS: https://github.com/dahall/Vanara/blob/master/PInvoke/BITS/CorrelationReport.md

[50]

Vanara.PInvoke.Rpc: https://github.com/dahall/Vanara/blob/master/PInvoke/Rpc/CorrelationReport.md

[51]

Vanara.PInvoke.RstrtMgr: https://github.com/dahall/Vanara/blob/master/PInvoke/RstrtMgr/CorrelationReport.md

[52]

Vanara.PInvoke.SearchApi: https://github.com/dahall/Vanara/blob/master/PInvoke/SearchApi/CorrelationReport.md

[53]

Vanara.PInvoke.SetupAPI: https://github.com/dahall/Vanara/blob/master/PInvoke/SetupAPI/CorrelationReport.md

[54]

Vanara.PInvoke.SHCore: https://github.com/dahall/Vanara/blob/master/PInvoke/SHCore/CorrelationReport.md

[55]

Vanara.PInvoke.Shell32: https://github.com/dahall/Vanara/blob/master/PInvoke/Shell32/CorrelationReport.md

[56]

Vanara.PInvoke.ShlwApi: https://github.com/dahall/Vanara/blob/master/PInvoke/ShlwApi/CorrelationReport.md

[57]

Vanara.PInvoke.TaskSchd: https://github.com/dahall/Vanara/blob/master/PInvoke/TaskSchd/CorrelationReport.md

[58]

Vanara.PInvoke.UrlMon: https://github.com/dahall/Vanara/blob/master/PInvoke/UrlMon/CorrelationReport.md

[59]

Vanara.PInvoke.User32: https://github.com/dahall/Vanara/blob/master/PInvoke/User32/CorrelationReport.md

[60]

Vanara.PInvoke.UserEnv: https://github.com/dahall/Vanara/blob/master/PInvoke/UserEnv/CorrelationReport.md

[61]

Vanara.PInvoke.UxTheme: https://github.com/dahall/Vanara/blob/master/PInvoke/UxTheme/CorrelationReport.md

[62]

Vanara.PInvoke.Version: https://github.com/dahall/Vanara/blob/master/PInvoke/Version/CorrelationReport.md

[63]

Vanara.PInvoke.VirtDisk: https://github.com/dahall/Vanara/blob/master/PInvoke/VirtDisk/CorrelationReport.md

[64]

Vanara.PInvoke.WcmApi: https://github.com/dahall/Vanara/blob/master/PInvoke/WcmApi/CorrelationReport.md

[65]

Vanara.PInvoke.WcnApi: https://github.com/dahall/Vanara/blob/master/PInvoke/WcnApi/CorrelationReport.md

[66]

Vanara.PInvoke.Wer: https://github.com/dahall/Vanara/blob/master/PInvoke/Wer/CorrelationReport.md

[67]

Vanara.PInvoke.WinBio: https://github.com/dahall/Vanara/blob/master/PInvoke/WinBio/CorrelationReport.md

[68]

Vanara.PInvoke.WinINet: https://github.com/dahall/Vanara/blob/master/PInvoke/WinINet/CorrelationReport.md

[69]

Vanara.PInvoke.Printing: https://github.com/dahall/Vanara/blob/master/PInvoke/Printing/CorrelationReport.md

[70]

Vanara.PInvoke.WinTrust: https://github.com/dahall/Vanara/blob/master/PInvoke/WinTrust/CorrelationReport.md

[71]

Vanara.PInvoke.WlanApi: https://github.com/dahall/Vanara/blob/master/PInvoke/WlanApi/CorrelationReport.md

[72]

Vanara.PInvoke.Ws2_32: https://github.com/dahall/Vanara/blob/master/PInvoke/Ws2_32/CorrelationReport.md

[73]

Vanara.PInvoke.WsmSvc: https://github.com/dahall/Vanara/blob/master/PInvoke/WsmSvc/CorrelationReport.md

[74]

Vanara.PInvoke.WTSApi32: https://github.com/dahall/Vanara/blob/master/PInvoke/WTSApi32/CorrelationReport.md

[75]

Vanara.BITS: https://github.com/dahall/Vanara/blob/master/BITS/AssemblyReport.md

[76]

Vanara.Core: https://github.com/dahall/Vanara/blob/master/Core/AssemblyReport.md

[77]

Vanara.PInvoke.Shared: https://github.com/dahall/Vanara/blob/master/PInvoke/Shared/AssemblyReport.md

[78]

Vanara.Security: https://github.com/dahall/Vanara/blob/master/Security/AssemblyReport.md

[79]

Vanara.SystemServices: https://github.com/dahall/Vanara/blob/master/System/AssemblyReport.md

[80]

Vanara.VirtualDisk: https://github.com/dahall/Vanara/blob/master/VirtualDisk/AssemblyReport.md

[81]

Vanara.Windows.Forms: https://github.com/dahall/Vanara/blob/master/Windows.Forms/AssemblyReport.md

[82]

Vanara.Windows.Shell: https://github.com/dahall/Vanara/blob/master/Windows.Shell/AssemblyReport.md

[83]

Documentation: https://github.com/dahall/Vanara/wiki

[84]

Issues: https://github.com/dahall/Vanara/issues

[85]

UnitTest: https://github.com/dahall/Vanara/tree/master/UnitTests

[86]

WinClassicSamplesCS: https://github.com/dahall/WinCla

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Dotnet9 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 怎么用?
  • 设计理念
  • 支持的库
  • 支持的程序集
  • 链接
  • 示例代码
    • 参考资料
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档