4个版本

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

#84 in Windows API

Download history 25/week @ 2024-03-13 32/week @ 2024-03-20 26/week @ 2024-03-27 30/week @ 2024-04-03 23/week @ 2024-04-10 26/week @ 2024-04-17 35/week @ 2024-04-24 20/week @ 2024-05-01 24/week @ 2024-05-08 27/week @ 2024-05-15 26/week @ 2024-05-22 38/week @ 2024-05-29 28/week @ 2024-06-05 28/week @ 2024-06-12 28/week @ 2024-06-19 30/week @ 2024-06-26

每月115次下载
用于 6 crates

Apache-2.0 OR MIT

4MB
36K SLoC

🦀 winresult - windows结果代码 🦀

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

GitHub crates.io docs.rs License

为什么?

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

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

  • ERROR_WHATEVER*中输入错误(*)仅是警告。错误(ERROR::WHATEVER)是硬错误。
    无论如何,我还是会使用 #![deny(unreachable_patterns)]

  • 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.infoERROR_* 错误标记为这个
    D3D10_ERROR_FILE_NOT_FOUND 0x88790002 不同的设施,相同的代码
    D3D11_ERROR_FILE_NOT_FOUND 0x887C0002 不同的设施,相同的代码
  • ERROR_* 是由 HRESULT 和非 HRESULT 混合而成的。你能把它们分清楚吗?不。你不能。别再撒谎了。

许可证

许可协议为以下之一

由您选择。

贡献

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

依赖关系