Используя detours v3, я получаю эту ошибку:
argument of type "signed int (Std::*)(int a1, int a2, int a3)" is incompatible with parameter of type "PVOID" Std.cpp 39
Когда я пытаюсь использовать DetourAttach
из функции моего класса.
Std* _std = new Std();
case DLL_PROCESS_ATTACH:
DetourAttach(&(PVOID&)_std->m_pKey, &Std::m_Key);
// or if I do this
DetourAttach(&(PVOID&)_std->m_pKey, _std->m_Key);
// the error becomes Std::m_Key non-stardard syntax; use & to create a pointer to member
Я знаю, что могу сделать это без использования классов, но я хочу это сделать. Какие-либо предложения?
Обновлять
DetourAttach
подпись (также можно найти здесь):
LONG WINAPI DetourAttach(PVOID *ppPointer,
PVOID pDetour)
Что касается Std::m_Key
int Std::m_Key(int a1, int a2, int a3)
{
return m_pKey(a1, a2, a3);
}
DetourAttach
? Какой типStd::m_Key
? ЧтоDetourAttach
делает со своими параметрами и что вы хотите передать? минимально воспроизводимый пример был бы идеальным. - person Angew is no longer proud of SO   schedule 15.03.2016