4个版本
0.2.0 | 2024年7月17日 |
---|---|
0.1.2 | 2023年9月2日 |
0.1.1 | 2023年9月2日 |
0.1.0 | 2023年9月2日 |
60 在 Windows API 中
每月50次下载
8KB
76 行
windows_safe_handle
使用舒适的API为windows原生句柄生成智能指针。
安全句柄!
这个crate不提供预定义的智能指针。相反,它提供了一个用于生成的单个safe_handle!
宏。
简单的智能指针,在Drop
上调用不安全函数
use windows_safe_handle::safe_handle;
use windows::Win32::Foundation::{HANDLE, CloseHandle};
safe_handle!(pub Handle(HANDLE), CloseHandle);
如果你不需要导出Handle
类型,只需省略pub
关键字。
具有额外Drop
逻辑的智能指针
你可以使用基于闭包的语法
use windows_safe_handle::safe_handle;
use windows::Win32::Foundation::{HANDLE, CloseHandle};
safe_handle!(pub Handle(HANDLE), |h| {
// Place your code here
unsafe { CloseHandle(h) }
});
请注意,在这种情况下,你必须明确使用unsafe
块。
版本
v0.1.*
:与windows
v0.48.0
兼容。v0.2.*
:与windows
v0.58.0
兼容。
示例
参考tests/bcrypt_hash.rs
了解如何安全地包装Windows Cryptography Next Generation (CNG) API以计算MD5哈希。
依赖关系
~128MB
~2M SLoC