Как видно из заголовка, я пытаюсь скомпилировать с Dev-C ++ простую DLL-библиотеку, используя Detours, но я получаю эту ошибку:
syntax error before token '&'
по этим строкам:
DetourAttach(&(PVOID &)trueMessageBox, hookedMessageBox)
DetourDetach(&(PVOID &)trueMessageBox, hookedMessageBox)
Полный код
#include <windows.h>
#include <detours.h>
#pragma comment( lib, "Ws2_32.lib" )
#pragma comment( lib, "detours.lib" )
#pragma comment( lib, "detoured.lib" )
int (WINAPI * trueMessageBox)(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType) = MessageBox;
int WINAPI hookedMessageBox(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType)
{
LPCSTR lpNewCaption = "You've been hijacked";
int iReturn = trueMessageBox(hWnd, lpText, lpNewCaption, uType);
return iReturn;
}
BOOL WINAPI DllMain( HINSTANCE, DWORD dwReason, LPVOID ) {
switch ( dwReason ) {
case DLL_PROCESS_ATTACH:
DetourTransactionBegin();
DetourUpdateThread( GetCurrentThread() );
DetourAttach(&(PVOID &)trueMessageBox, hookedMessageBox)
DetourTransactionCommit();
break;
case DLL_PROCESS_DETACH:
DetourTransactionBegin();
DetourUpdateThread( GetCurrentThread() );
DetourDetach(&(PVOID &)trueMessageBox, hookedMessageBox)
DetourTransactionCommit();
break;
}
return TRUE;
}