Go to the documentation of this file.
16#ifndef LIEF_PE_EXPORT_ENTRY_H
17#define LIEF_PE_EXPORT_ENTRY_H
43 operator bool()
const {
44 return !library.empty() || !function.empty();
48 os << info.library <<
'.' << info.function;
56 uint16_t ordinal, uint32_t function_rva) :
57 function_rva_{function_rva},
64 ExportEntry&
operator=(
const ExportEntry&) =
default;
85 return is_forwarded() ? forward_info_ : forward_information_t{};
101 is_extern_ = is_extern;
108 void value(uint64_t value)
override {
109 address(
static_cast<uint32_t
>(value));
113 forward_info_.library = std::move(lib);
114 forward_info_.function = std::move(function);
117 void accept(Visitor& visitor)
const override;
123 uint32_t function_rva_ = 0;
124 uint16_t ordinal_ = 0;
125 uint32_t address_ = 0;
126 bool is_extern_ =
false;
128 forward_information_t forward_info_;
Class that is used to rebuild a raw PE binary from a PE::Binary object.
Definition PE/Builder.hpp:45
Class which represents a PE Export entry (cf. PE::Export)
Definition ExportEntry.hpp:33
ExportEntry & operator=(const ExportEntry &)=default
friend std::ostream & operator<<(std::ostream &os, const ExportEntry &exportEntry)
bool is_forwarded() const
Definition ExportEntry.hpp:80
uint64_t value() const override
Definition ExportEntry.hpp:104
bool is_extern() const
Definition ExportEntry.hpp:77
uint32_t address() const
Definition ExportEntry.hpp:74
void value(uint64_t value) override
Definition ExportEntry.hpp:108
void is_extern(bool is_extern)
Definition ExportEntry.hpp:100
void accept(Visitor &visitor) const override
ExportEntry(uint32_t address, bool is_extern, uint16_t ordinal, uint32_t function_rva)
Definition ExportEntry.hpp:55
void set_forward_info(std::string lib, std::string function)
Definition ExportEntry.hpp:112
ExportEntry(const ExportEntry &)=default
~ExportEntry() override=default
uint16_t ordinal() const
Definition ExportEntry.hpp:71
uint32_t function_rva() const
Definition ExportEntry.hpp:88
forward_information_t forward_information() const
Definition ExportEntry.hpp:84
void ordinal(uint16_t ordinal)
Definition ExportEntry.hpp:92
void address(uint32_t address)
Definition ExportEntry.hpp:96
std::string demangled_name() const
Demangled representation of the symbol or an empty string if it can't be demangled.
Main interface to parse PE binaries. In particular the static functions: Parser::parse should be used...
Definition PE/Parser.hpp:47
Namespace related to the LIEF's PE module.
Definition Abstract/Header.hpp:32
LIEF namespace.
Definition Abstract/Binary.hpp:36
friend std::ostream & operator<<(std::ostream &os, const forward_information_t &info)
Definition ExportEntry.hpp:47
#define LIEF_API
Definition visibility.h:41