2 个版本

0.1.1 2020 年 10 月 17 日
0.1.0 2020 年 10 月 10 日

#14#api-error

每月 30 次下载

MIT 许可证

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