Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2014, 04:24   #1
Crystallon
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 273
Вопрос Перехват Direct3DDevice9.EndScene

Доброго времени суток!
Некоторое время назад делал дллку которая в игре на DX9 выводила на экран доп. интерфейс, сейчас понадобилось сделать нечто подобное, но обнаружилось что на моем стационарном ПК эта dll работает, а на ноутбуке нет. Проблема на сколько я выяснил заключается в перехвате EndScene а также BeginScene.

Код:
HookCode(GetInterfaceMethod(ppReturnedDeviceInterface, 41), @BeginScene9Callback, @BeginScene9Next);
HookCode(GetInterfaceMethod(ppReturnedDeviceInterface, 42), @EndScene9Callback, @EndScene9Next);
В BeginScene9Callback и EndScene9Callback поставил вывод в лог сообщения при каждом выполнении функции, на стационарном пк сразу после запуска игры лог начинает стремительно забиваться вызовами BeginScene и EndScene, а на ноутбуке ни то ни другое не вызывается ни разу. Ради интереса пробовал менять

Код:
HookCode(GetInterfaceMethod(ppReturnedDeviceInterface, 41), @BeginScene9Callback, @BeginScene9Next);
на

Код:
HookCode(GetInterfaceMethod(ppReturnedDeviceInterface, 40), @BeginScene9Callback, @BeginScene9Next);
40 это явно другая функция и при запуске игры она вылетает с ошибкой, но в логе один вызов BeginScene9Callback проходит, соответственно библа madhook на сколько я могу судить со своей задачей справляется. В итоге непонятно в чем проблема, чем DX может отличаться на стационарном ПК и ноуте до такой степени чтобы это не работало.

Заранее спасибо за любые подсказки по вопросу!
Crystallon вне форума Ответить с цитированием
Старый 16.03.2014, 05:01   #2
Crystallon
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 273
По умолчанию

Решил проблему, BeginScene и EndScene перехватить на ноутбуке так и не удалось, а вот Present перехватывается одинаково хорошо и на стационарном пк и на ноуте, а его вполне достаточно.
Crystallon вне форума Ответить с цитированием
Старый 16.03.2014, 07:14   #3
Larboss
Недо
Участник клуба
 
Регистрация: 11.08.2011
Сообщений: 1,394
По умолчанию

Эта библиотека подойдет, если игра использует для вывода изображение только DirectDraw?
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп
Larboss вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перехват Miha85193 Общие вопросы Delphi 2 23.05.2012 13:16
Перехват. egorzenit Общие вопросы Delphi 3 29.03.2012 15:19
Перехват данных Maincore Работа с сетью в Delphi 2 11.08.2011 14:14
Перехват GL Api coNsept Общие вопросы C/C++ 6 19.06.2011 02:42
Перехват неперехвачеваемого hotcooler17 Win Api 3 03.04.2009 18:31