Использование обходных путей v3, я получаю эту ошибку:несовместимым с типом параметра PVOID
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
Я знаю, что могу сделать это без использования классов, но я хочу это сделать. Какие-либо предложения?
Update
DetourAttach
подпись (также можно найти here):
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» с его параметрами и что вы хотите передать? A [mcve] был бы идеальным. – Angew
& (PVOID &) просто неправильно. Это означало бы, что вы передаете указатель на ссылку на указатель типа void – Chris