|
void SetShellHook()
{
FARPROC lpfnProc;
lpfnProc = GetProcAddress(GetModuleHandle("HookDll.dll"), "ShellProc");
ShellHook = SetWindowsHookEx(
WH_SHELL,
lpfnProc,
NULL,
0
);
WriteData();
}
이렇게 하니까 되네요..
그런데 책에는.. 단순히 포인터를 넣는게 아니라
훅킹 프로시저이름만을 적어놓았네요.. -_-
허접.indio 님이 쓰신 글 :
: 함수를 사용하는데서 에러가 나는것은 아닌거 같습니다만... ㅡㅡ''
: SetWindowsHookEx 라는 함수안에 두번째 인자로 들어가는 lpfn 을 잘못 선언한것 같습니다..
: ShellProc 라는 함수를 정의했을테고... 이 함수의 포인터를 선언부에서 선언을 하셨을텐데요..
: 잘못 선언이 되고 잘못 정의가 되어 있는것 같습니다...
:
: 한번 확인을 해 보심이... 그럼 수고하세요..
:
: 지영배 님이 쓰신 글 :
: :
: : 훅을 걸어주는 함수 입니다.
: :
: : void SetShellHook()
: : {
: : ShellHook = SetWindowsHookEx(
: : WH_SHELL,
: : ShellProc,
: : NULL,
: : 0
: : );
: :
: : WriteData();
: :
: : }
: :
: : 이렇구요.. 저 위에 보시면 하시겠지만 훅 프로시저는 ShellProc 입니다.
: :
: : 그런데 자꾸만.. 저 함수에서 에러가 납니다.
: :
: : [C++ Error] HookDll.cpp(28): E2034 Cannot convert 'long (__stdcall *)(int,unsigned int,long)' to 'int (__stdcall *)()'
: :
: : [C++ Error] HookDll.cpp(28): E2342 Type mismatch in parameter 'lpfn' (wanted 'int (__stdcall *)()', got 'long (__stdcall *)(int,unsigned int,long)')
: :
: :
: : 이렇게 에러가 납니다.
: :
: : 제가 함수 사용을 잘못 한건지요?.
: :
: : 타입(Type) 에러 인거 같은데.. 잘 모르겠습니다. T_T
: :
: : 아시는분.. 답변좀 주세요~
: :
: : 오늘도 좋은 하루되세요.. ^^
: :
: :
: :
: :
|