Подключение к приложению DirectX - PullRequest
3 голосов
/ 16 ноября 2009

В настоящее время я пытаюсь отобразить некоторую информацию (в виде наложения) для пользователя в игре на основе DirectX, очень похоже на количество кадров, отображаемое Fraps, но я понятия не имею, с чего начать. Я не ожидаю полного решения моей проблемы, просто несколько советов, с чего можно начать и где получить больше информации по теме;)

Заранее спасибо.

PS: проект, над которым я работаю, написан на C # (.NET 3.5)

PPS: Чтобы уточнить: я имею в виду подключение к любой случайной игре на основе DX. Запустите мое приложение, запустите любую игру, отобразите какое-то наложение.

Ответы [ 3 ]

4 голосов
/ 17 ноября 2009

Ну, один из способов - поместить d3d9.dll рядом с исполняемым файлом. Шаблон поиска DLL ВСЕГДА будет сначала искать текущий каталог.

Теперь это просто "маленький" вопрос реализации интерфейса DirectX, чтобы пройти через все к REAL d3d9.dll. После того, как вы это сделали, каждый раз, когда пользователь звонит, вы можете добавить свой собственный рендеринг. В случае примера частоты кадров вы можете измерить время между текущими вызовами.

Перехват загрузки файла D3D9.dll без размещения вашей собственной DLL-библиотеки является ОЧЕНЬ более сложной задачей.

Другие виды информации здесь:

http://www.codeproject.com/Articles/20084/A-More-Complete-DLL-Injection-Solution-Using-Creat

2 голосов
/ 15 мая 2010

не уверен, если вы все еще ищете идеи по этому вопросу, но для вас или кого-либо еще, кто может попробовать это, вот пример перехвата методов IDirect3DDevice9 в C # , которые я ' мы подготовлены.

Он использует EasyHook для внедрения DLL-метода + перехват метода и небольшую DLL-утилиту C ++ для определения адреса функции, которую нужно перехватить во время выполнения. EasyHook определяет, где остановился Microsoft Detours.

2 голосов
/ 18 ноября 2009

Благодаря Гозу я также нашел следующие интересные ресурсы по теме:

Похоже, Microsoft Detours - это то, что нужно ... Впрочем, у него еще не было времени попробовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...