3个版本

0.1.3 2022年10月7日
0.1.2 2022年9月30日
0.1.0 2022年2月21日

#202 in Windows API

Download history 26/week @ 2024-03-12 42/week @ 2024-03-19 37/week @ 2024-03-26 79/week @ 2024-04-02 25/week @ 2024-04-09 45/week @ 2024-04-16 42/week @ 2024-04-23 22/week @ 2024-04-30 22/week @ 2024-05-07 30/week @ 2024-05-14 31/week @ 2024-05-21 46/week @ 2024-05-28 29/week @ 2024-06-04 27/week @ 2024-06-11 40/week @ 2024-06-18 34/week @ 2024-06-25

139 每月下载量
7 个crate中(通过 winresult)使用

Apache-2.0 OR MIT

1.5MB
22K SLoC

🦀 winresult - windows结果代码 🦀

Windows结果代码的调试友好类型。

GitHub crates.io docs.rs License

为什么?

  • u32错误码在使用dbg!(...)时很麻烦。winresult有出色的Debug实现。

  • u32错误码在调试器中查看时很麻烦。winresult有出色的*.natvis文件。使用natvis-pdbs

  • match中使用ERROR_WHATEVER只是一个警告。ERROR::WHATEVER是一个硬错误。
    (我仍然会用#![deny)。)

  • ERROR_INVALID_FUNCTION == S_FALSE (== 1)。太弱了!

  • ERROR_FILE_NOT_FOUND (2)是一团糟。一个函数或GetLastError可能会返回

    标签 备注
    ERROR_FILE_NOT_FOUND 0x00000002 不是HRESULT(应该是“成功的”)
    HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND) 0x80070002 hresult.info "错误地" 将 ERROR_* 标识为以下内容
    NTSTATUS_FROM_WIN32(ERROR_FILE_NOT_FOUND) 0xC0070002 不知道 NtStatus 值被频繁地推入 GetLastError,但我已经见过更奇怪的情况
    D3D10_ERROR_FILE_NOT_FOUND 0x88790002 不同的设施,相同的代码
    D3D11_ERROR_FILE_NOT_FOUND 0x887C0002 不同的设施,相同的代码
  • ERROR_*HRESULT 和非 HRESULT 的混合体。你能把它们搞清楚吗?不,你不能。别再撒谎了。

许可证

根据您的选择,许可协议可以是以下之一

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义的任何有意提交以包含在作品中的贡献,都应以上述方式双许可,而不附加任何额外条款或条件。

依赖关系

~0.4–0.9MB
~19K SLoC