[−][src]Crate minidl
minidl
Extremely lean cross platform library for loading symbols.
- No dependencies (minimal build times)
- No macros (minimal build times)
- No safety (ABI mismatches would be unsound anyways)
- No unloading (would be unsound if the library spawned threads anyways)
Quick Start
use minidl::*; 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"), })} } }
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Structs
Library | A loaded library handle. |
Type Definitions
Error | The error type of this library, std::io::Error |
Result | The result type of this library, std::io::Result |