안녕하세요.
전역 후킹 dll 을 만들어서 작업을 좀 하고 있습니다.
예를 들어 메모장에서 'A' 키를 누르면 'B' 키가 써지도록 하고 있는데요...
작동은 잘 됩니다. 훅의 해제도 잘되구요. 하지만 실행파일을 종료하면
메모장 : notepad.exe - 응용프로그램 오류
"0x0000 명령이 0x0000 명령을 참조했... 메모리는 read 될 수 없었습니다."
라는 오류가 납니다.
훅 dll 은 정적으로 로드했구요 데이터 전송을 위해 맵 파일 메모리를 사용했습니다.
음... 여러가지 테스트를 해 보았지만...
훅 해제등은 잘 되는데 아마도 문제가 있다면 키보드 훅을 제어하는 함수에서
제대로된 처리를 안하는 부분이 있는듯 합니다.
KeyHookProc 라는 함수는
if nCode = HC_ACTION then begin
{~~~}
result := -1;
exit;
end else
if nCode = HC_NOREMOVE then begin
result := 0;
exit;
end else
if nCode < 0 then begin
result := CallNextHookEx(hhR^.hKey, nCode, wParam, lParam);
end;
이런식으로 코딩을 했습니다.
전역 후킹시 문제가 발생될 소지가 있는 부분이나 조언을 듣고 싶습니다.
행복한 하루 되세요
다른 쪽의 문제 같군요...