Files
FunctionHooking/main.cpp

29 lines
703 B
C++

#include <iostream>
#include <FunctionHook/Hook.h>
using namespace FunctionHooking;
VTable* virtual_hook;
class Base {
public:
virtual void test() {};
Base() = default;
};
class Inherited : public Base {
public:
void test() override { std::cout << "test original" << std::endl; }
Inherited() = default;
};
void vtable_hook_function() { std::cout << "vtable hook function." << std::endl; virtual_hook->CallOriginal<void>(); }
int main() {
auto* some_class = new Inherited();
virtual_hook = new VTable(some_class, 0, (void*) vtable_hook_function );
some_class->test();
std::cout << virtual_hook->Valid() << std::endl;
delete virtual_hook;
delete some_class;
}