windows_elf_loader/
lib.rs1use elf_loader::{
2 Error, Loader,
3 image::RawDylib as ElfDylib,
4 input::{ElfBinary, ElfFile},
5 os::DefaultMmap,
6 tls::DefaultTlsResolver,
7};
8
9pub struct WinElfLoader {
11 loader: Loader<DefaultMmap, (), (), DefaultTlsResolver>,
12}
13
14impl WinElfLoader {
15 pub fn new() -> Self {
16 let loader = Loader::new().with_default_tls_resolver();
17 Self { loader }
18 }
19
20 pub fn load_dylib(
21 &mut self,
22 name: &str,
23 bytes: impl AsRef<[u8]>,
24 ) -> Result<ElfDylib<()>, Error> {
25 let object = ElfBinary::new(name, bytes.as_ref());
26 self.loader.load_dylib(object)
27 }
28
29 pub fn load_file(&mut self, name: &str) -> Result<ElfDylib<()>, Error> {
30 let object = ElfFile::from_path(name)?;
31 self.loader.load_dylib(object)
32 }
33}