Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Мне нужен рабочий пример, как перехватить функцию GetSysColor из user32.dll. Перехватчик должен возвращать или переопределённое мною значение или результат оригинальной функции GetSysColor, если переопределения не было.

Тестировать буду примерно таким кодом:

int _tmain(ing argc, _TCHAR* argv[]) {

  DWORD v = GetSysColor(2);

  printf("Got color: %x\n", v);

  /* Maybe load your dll here */

  set_color_override(2, 0x777777);

  hook_GetSysColor();

  v = GetSysColor(2);

  printf("Got color: %x\n", v); // Expected: 0x777777

}

Перехват должен работать только для текущего процесса, другие приложения должны остаться незатронутыми. Код должен быть потокобезопасным.

Код должен работать без дополнительных зависимостей типа Detours.

8 лет назад
olpa
Олег 
46 летГермания
18 лет в сервисе
Был
8 лет назад