2 个版本
0.1.1 | 2020 年 10 月 17 日 |
---|---|
0.1.0 | 2020 年 10 月 10 日 |
#14 在 #api-error
每月 30 次下载
295KB
9K SLoC
Winwrap
Rust 友好的 Windows API 封装。
特性
- 安全的 Windows API 封装
- 不安全的原始 API
- 不安全的原始 API 仅封装错误处理。
- TCHAR 和 TString 支持。
- 默认情况下,TCHAR 是 WCHAR。如果您想使用 ANSI,请启用 ansi 功能。
安装
[dependencies]
winwrap = "0.1.0"
或
[dependencies.winwrap]
version = "0.1.0"
features = ["ansi"] # TCHAR == CHAR, TString == AString
示例
use winwrap::um::fileapi::*;
use winwrap::winapi::shared::winerror::ERROR_NO_MORE_FILES;
fn enumerate_files_w() {
use winwrap::string::WString;
let path = WString::from(r".\*.*");
let (handle, mut data) = find_first_file_w(&path).unwrap();
loop {
println!("name: {:?}", data.get_file_name().to_string_lossy());
println!("\tflags: {:?}", data.file_attributes);
println!("\talternate file name: {}", data.get_alternate_file_name().to_string_lossy());
println!("----------------------------");
data = match find_next_file_w(&handle) {
Ok(x) => x,
Err(ERROR_NO_MORE_FILES) => {
println!("All files enumerated!");
break;
}
Err(x) => panic!("Unknown Error: {}", x),
};
}
}
fn main(){
enumerate_files_w();
}
许可证
本软件根据 MIT 许可证发布,请参阅 LICENSE。
依赖关系
~1.3–1.8MB
~40K SLoC