[완료] Windows compile error...
글쓴이: 서지훈 / 작성시간: 일, 2007/03/25 - 8:32오후
당췌 알 수가 없네요.
에러 없이 다른데에선 compile이 잘 되는 코드인데...
유독 현재의 프로젝트에서만 컴파일이 안되는군요.
문제의 코드는 아래와 같습니다.DetourAttach( &(PVOID&)HeapAllocTrue, HeapAllocHooked );
그리고 함수 정의는...LONG WINAPI DetourAttach(PVOID *ppPointer, PVOID pDetour);
static LPVOID (WINAPI * HeapAllocTrue)( HANDLE hHeap, DWORD dwFlags, DWORD dwBytes ) = HeapAlloc;
에러 메시지 wrapper_win32.c(290) : error C2143: syntax error : missing ')' before '&' wrapper_win32.c(290) : error C2059: syntax error : ')'
참고로 이 코드는 malloc() 혹킹을 찾다가 방법이 없어 아쉬운데로 HeapAlloc()을 훅킹하는 코드의 일부분입니다.
혹시나 여기에 문제점이 보이시는분 답변을 좀 부탁드립니다.
<어떠한 역경에도 굴하지 않는 '하양 지훈'>
Forums:
PVOID& 가 아니라 PVOID*인 걸로 보입니다.
DetourAttach(PVOID *ppPointer, PVOID pDetour); 이 원형이므로 (PVOID *)형으로 캐스팅 된 HeapAllocTrue의
주소를 받아오는(&) 것이 되겠죠. 따라서 DetourAttach( &(PVOID *)HeapAllocTrue, HeapAllocHooked );로 적어
주시는 것이 맞습니다. 다른 데에서 되었다고 한다면 C++ 컴파일러로 컴파일하신게 아닌가 싶군요.
cl에 /TP 옵션주고
cl에 /TP 옵션주고 C++로 컴파일을 하니 잘 되는군요.
뉘신지 몰라도 답변 정말 감사합니다. ^^
<어떠한 역경에도 굴하지 않는 '하양 지훈'>
#include <com.h> <beer.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);
#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);
코드를 고쳐야
코드를 고쳐야 되는데 컴파일러를 바꿔서 해결하시다니.. -_-
댓글 달기