Исходник d3d9hook

SR_team

like pancake
Автор темы
BH Team
4,719
6,362
Вынес хук девайса из своего шаблона аси-плагинов в отдельный модуль и спешу поделиться им. В отличие от других хуков dx9, данный хук можно выгружать даже такой ситуации: hook->hook->этот hook->hook->game. Конечно такая выгрузка не обходится бесплатно, мы жертвуем примерно 150 байт памяти при выгрузке. Данная память остается не выгруженной для работы прослойки, поддерживающей передачу вызовов между хуками, которые располагались до и после d3d9hook.

Как создать хук?
C++:
auto hook = new d3d9hook(*(IDirect3DDevice9**)0xC97C28); // Код для GTA: SA. В других играх надо искать указатель на девайс
Как что-то нарисовать в Present?
C++:
hook->onDraw += [&](){
    // Что-то рисуем
};
Как реинициализировать объект в Reset?
C++:
hook->onPreReset += [&](){
    // Инвалидация объектов
};
hook->onPostReset += [&](){
    // Инициализация объектов
};

А теперь более сложные вопросы.
Как использовать без CMake?

Необходимо добавить папки SRSignal и SRHookVtable в глобальную область инклюдов, что бы содержащиеся в них файлы можно было инклюдить через угловые скобки​
Как использовать без CMake и не ебаться с видимостью инклюдов?
C++:
// Заменить эти строки в файле d3d9hook.h:
#include <SRHookVtableExt.hpp>
#include <SRSignal.hpp>
// На эти:
#include "SRHookVtable/SRHookVtableExt.hpp"
#include "SRSignal/SRSignal.hpp"



Скачать:

Если вы используете git, то надо забрать модуль с подмодулями: git clone --recursive https://gitlab.com/SR_team/d3d9hook
Если вы не используете гит, то Вам придется перейти в репозитории подмодулей и выкачать еще и их. Проще использовать гит
 

atizoff

приобретаю кашель за деньги
Проверенный
1,295
1,178
Поддержка 64 бит?
 

Carrentine

Потрачен
569
460
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
а зачем сюда выкладывать, у тебя все на гитлабе лежит
 

loganhackerdff

Известный
868
517
Объясните тупому, что я не так сделал?
1621879540351.png