Q&A

  • dll에서 포인터로 문자열 구하기 어렵습니다
훅을 처리하기 위해 Dll을 만들고 Dll의 함수를 통해
원하는 문자열 데이타를 구하려고 하는데 포인터를 사용하면서
무슨 문제인지는 몰라도 프로그램이 그냥 종료됩니다
같은 모양의 함수를 메인 프로그램에서 사용할때는
문자열이 그냥 구해지는데 Dll을 경유하면 그냥 프로그램이 가버리네요
소스를 요약했는데 어디가 문제인지
고수님들 한번 좀 봐주시면 감사하겟습니다

//메인프로그램 부분
procedure HookGetText(LText:Pointer); external  'Hook.dll';

procedure THookFrm.DataRequest;
var
LPText:PChar;
GAH    : THandle;
begin
GAH := GlobalAlloc(GPTR,1000);;
CPText := GlobalLock(GAH);
HookGetText(LPText);
Edit1.text:=LPText;
GlobalUnLock(GAH);
GlobalFree(GAH);
end;

//Hook.Dll 부분
procedure HookGetText(LText:Pointer); stdcall;
var
TempData: array[0..1000] of Char;
begin
     TempData:='abc';
     LStrCpy(LText,TempData);
end;

Exports
HookCaptureText,
begin
end;
0  COMMENTS