Expand description
Export Directory.
The export directory contains a list of symbols, well, exported by this module. A symbol can refer to a function, static data or a forwarded reference to an exported symbol in another module.
Symbols can be exported by name or by their ordinal number. The ordinal number of an exported function is its index in the exported function list plus the ordinal base.
Examples
use pelite::pe64::{Pe, PeFile};
use pelite::pe64::exports::GetProcAddress;
fn example(file: PeFile<'_>) -> pelite::Result<()> {
// Most convenient way to get the address of an export
file.get_proc_address("ThrowException")?;
// Access the export directory
let exports = file.exports()?;
// Print the export DLL name
let dll_name = exports.dll_name()?;
println!("dll_name: {}", dll_name);
// To query the exports
let by = exports.by()?;
// For example: query an export by name
by.name("?__autoclassinit2@Passwds@@QEAAX_K@Z")?;
// For example: query an export by ordinal
by.ordinal(6)?;
// For example: iterate over all the exports.
for result in by.iter() {
if let Ok(export) = result {
println!("export: {:?}", export);
}
}
// For example: iterate over the named exports
for result in by.iter_names() {
if let (Ok(name), Ok(export)) = result {
println!("export {}: {:?}", name, export);
}
}
Ok(())
}
Structs
Enums
Exported symbol.
Traits
Convenient way to get an exported address.