29 lines
703 B
C++
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;
|
|
} |