|
VCL내부적으로 TControl->ScreenToClient함수 사용하는 경우
VCL내부적으로 ScreenToClient함수를 사용하는데는 대충 다음과 같은 경우네요
1. PopupMenu를 뛰울때
2 TApplciation객체에서 hint를 띄울때
3 Control을 Drag-Drop할때
4.기타..
위와같은 경우에 VCL내부저긍로 ScreenToClient함수를 사용하네요
만약 TControl클레스의 ScreenToClient 함수에서 AccessViolaiton이 발생했다면
함수가 호출된 Control객체가 유효하지 안는 경우인데
DragDrop의 경우 Source나 Destnation되는 객체가 nil이거나 잘못된경우이면
저기에 예외가 발생할것 같습니다.
위에 얘기한 세가지 경우와 관련된 코드가 없는지 한번 확인해 보세요
그럼..
하안인 님이 쓰신 글 :
: Accesstion Violation 0x00500A88 에서 에러가 나서
:
: map파일에서
: 0x401000 을 밴 주소 0x000FFA88를 찾았습니다.
:
: 0001:000FFA4C @Controls@TControl@ClientToScreen$qqrrx12Types@TPoint
: 0001:000FFA78 @Controls@TControl@ScreenToClient$qqrrx12Types@TPoint --> 이지점인데
: 0001:000FFAA4 @Controls@TControl@SendCancelMode$qqrp17Controls@TControl
: 0001:000FFAD4 @Controls@TControl@SendDockNotification$qqruiii
:
: 이지점이 제 소스상 어디 부분에 위치하고 있는지 어떻게 알 수 있나요.
: 직접 ScreenToClient를 소스상에서 부른것이 아니라 VCL에서 처리된 부분인데
: 어디에서 값을 잘못입력되서 그런지 알수없어서요.
|