资料介绍
软件简介
Windows Implementation Libraries (WIL) 是一个只包含头文件的 C++ 库,可以让 Windows 开发者通过易读的类型安全的 C++ 接口来实现通用的 Windows 编码模式。
主要包括:
-
include/wil/resource.h
(documentation): Smart pointers and auto-releasing resource wrappers to let you manage Windows API HANDLEs, HWNDs, and other resources and resource handles with RAII semantics. -
include/wil/win32_helpers.h
: Wrappers for API functions that save you the work of manually specifying buffer sizes, calling a function twice to get the needed buffer size and then allocate and pass the right-size buffer, casting or converting between types, and so on. -
include/wil/registry.h
: Registry watchers that can call a lambda function or callback you provide whenever a certain tree within the Windows registry changes. -
include/wil/result.h
(documentation): Preprocessor macros to help you check for errors from Windows API functions, in many of the myriad ways those errors are reported, and surface them as error codes or C++ exceptions in your code.
WIL can be used by C++ code that uses C++ exceptions as well as code that uses returned error codes to report errors. All of WIL can be used from user-space Windows code, and some (such as the RAII resource wrappers) can even be used in kernel mode.
Consuming WIL via NuGet
You can consume WIL via a NuGet package. To do so, follow the instructions on nuget.org. This package includes the header files under the include directory as well as a .targets file
Building/Testing
To get started testing WIL, first make sure that you have a recent version of Visual Studio installed. If you are doing any non-trivial work, also be sure to have a recent version of Clang installed. Once everything is installed, open a VS native command window (e.g. "x64 Native Tools Command Prompt for VS 2019"). From here, you can either invoke CMake directly:
C:\wil> mkdir build C:\wil> cd build C:\wil\build> cmake -G Ninja ..
Or through one of the scripts in the scripts directory:
C:\wil> scripts\init.cmd -c clang -g ninja -b debug
If you initialized using Ninja as the generator, you can build the tests like so:
C:\wil\build\clang64debug> ninja
Or, if you want to only build a single test (e.g. for improved compile times):
C:\wil\build\clang64debug> ninja witest.noexcept
If you initialized using MSBuild as the generator, there will be a .sln
file in the root of the build directory. You can either open the solution in Visual Studio or invoke MSBuild directly to build.
The output is a number of test executables. If you used the initialization script(s) mentioned above, or if you followed the same directory naming convention of those scripts, you can use the runtests.cmd script, which will execute any test executables that have been built, erroring out - and preserving the exit code - if any test fails. Note that MSBuild will modify the output directories, so this script is only compatible with using Ninja as the generator. If you are at the tail end of of a change, you can execute the following to get a wide range of coverage:
C:\wil> scripts\init_all.cmd C:\wil> scripts\build_all.cmd C:\wil> scripts\runtests.cmd
Note that this will only test for the architecture that corresponds to the command window you opened. You will want to repeat this process for the other architecture (e.g. by using the "x86 Native Tools Command Prompt for VS 2019")
- 基于Labview的调用windows程序源码分享 96次下载
- Windows使用DWriteCore实现呈现文本功能 7次下载
- AN1246中文手册之如何在Microchip图形库中创建控件
- 如何在windows环境下用Sourcery CodeBench编译基于am3359的u-boot概述 8次下载
- 在Windows CE下实现串口通信 6次下载
- 基于Windows CENET的串行通信的实现 5次下载
- 面向WINDOWS开发的基本实现 16次下载
- 基于Windows CE的GPS串行通信的实现
- 基于Windows CE的数控软件开发与实现
- Windows CE 数据库程序开发
- 嵌入式移动数据库SQL Server for Windows
- 利用TCP/IP实现Windows与Vxworks的通信
- 基于Windows CE&Pocket PC的数据库应用程序
- Windows Live软件下载 软件包 2009版 (含M 0次下载
- windows player 11
- 在单片机上实现动态加载功能的函数库介绍 1172次阅读
- Vitis加速库:广泛且性能优化的开源库 541次阅读
- STM32基于HAL库实现微秒延时 4366次阅读
- 调用HLS的FFT库实现N点FFT 934次阅读
- Linux中的静态库和共享库 850次阅读
- 100行Python实现人体肤色检测 606次阅读
- 基于STM32调用固件库实现点灯 749次阅读
- Linux或Windows上实现端口映射 761次阅读
- 鸿蒙开发中库的调用 1601次阅读
- HAL库无法实现UART的DMA传输真是这样吗? 2358次阅读
- 开源数据库管理工具Beekeeper Studio简介 3498次阅读
- 将函数封装成库使用的实现方法 5311次阅读
- 刚刚开源的最快人脸检测库:libfacedetection 1.2w次阅读
- Python+微信一键连接实现远程管理Windows10操作系统的开机和关机 6116次阅读
- STM32标准库改为HAL库的程序实现 3.4w次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多