7个版本

0.1.6 2023年12月8日
0.1.5 2022年12月9日
0.1.4 2022年2月7日
0.1.3 2022年1月21日
0.1.0 2020年1月14日

操作系统类别中排名#136

Download history 378/week @ 2024-03-14 394/week @ 2024-03-21 325/week @ 2024-03-28 216/week @ 2024-04-04 421/week @ 2024-04-11 389/week @ 2024-04-18 341/week @ 2024-04-25 263/week @ 2024-05-02 201/week @ 2024-05-09 231/week @ 2024-05-16 284/week @ 2024-05-23 220/week @ 2024-05-30 260/week @ 2024-06-06 210/week @ 2024-06-13 219/week @ 2024-06-20 137/week @ 2024-06-27

每月下载量879
10个crate(6个直接)中使用

MIT/Apache

27KB
131

minidl

Crates.io Docs unsafe: yes rust: stable License
GitHub Build Status Open issues dependency status

极简的跨平台库,用于加载符号。

  • 无依赖(最小构建时间)
  • 无宏(最小构建时间)
  • 无安全(任何ABI不匹配都会是不安全的)

快速开始

use minidl::*;
use std::os::raw::*;

struct Example {
    OutputDebugStringA: unsafe extern "system" fn (_: *const c_char),
    Invalid_Optional:   Option<unsafe extern "system" fn (_: *const c_char)>,
}

impl Example {
    pub fn new() -> Result<Self> {
        let lib = Library::load("kernel32.dll")?;
        unsafe{Ok(Self{
            OutputDebugStringA: lib.sym("OutputDebugStringA\0")?,
            Invalid_Optional:   lib.sym_opt("Invalid_Optional\0"),
        })}
    }
}

许可协议

许可协议为以下之一:

任选其一。

贡献

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

无运行时依赖