Delphi XE를 사용하고 있습니다. Delphi Soap을 사용하여 메모리 누수 문제가 발생했습니다. 그것은 내가 가진 문제는 QC 91160TWSDLLookup.Destroy 메서드의 Delphi XE 메모리 누수
에 설명 된대로 인해 TWSDLLookup.Destroy
에서 누락 된 파울 콜에 의한 것으로 판명 해결 방법은 TWSDLLookup.Destroy
방법에 FLookup.Free
를 추가하는 것입니다있는 설명했다.
나는 델파이 소스를 바꾸고 싶지 않아서 프로젝트 폴더에 유닛을 복사하려고 시도했다. 변경과 재 컴파일은 톰의 답변에 here과 같이 기술되어있다. 이 기술의 문제점은 모든 종속 유닛을 다시 컴파일하는 경우에만 작동한다는 것입니다. 내 프로젝트 디렉토리에 그냥 WSDLLookup.pas
복사를 시도하고 Stackoverflow 오류가 발생합니다. 나는 웹 서비스/SOAP에 익숙하지 않기 때문에이 기술을 사용하면 다른 단위를 복사해야할지 모르겠다.
같은 페이지에서 Rob Kennedy의 대답은 코드 후킹과 관련된 다른 기술을 설명하지만 객체 메소드에는 적용되지 않는 것으로 보입니다. 그가 TNT 유니 코드 컨트롤에 대한 무료 코드를 제안하고 다운로드 한 것처럼 관련 절차를 찾았지만 객체의 메서드를 연결하는 방법에 대한 정보를 찾을 수 없었습니다. 실제로 가능하면 가능합니다. 이 작업을 수행 할 수 있다면 TWSDLLookup.Destroy
을 연결하고 FLookup.Free
호출을 추가합니다.
이 문제를 해결하는 방법에 대한 아이디어는 크게 환영 할 것입니다. 나는 약간의 초보자 프로그래머이므로 뭔가 확실한 것을 놓쳤다 고 생각하니?
답장을 보내 주셔서 감사합니다 :) –
디버그 디버거를 사용하면 문제가 발생할 수 있습니다. 아마 스택 오버플로가 발생할 수 있습니다. 아니면 다른 버그가있을 수도 있습니다. –
어쨌든 다시 고마워. 작동하지 않기 때문에, 내가 뭘 잘못하고 있는지 찾아 보겠습니다 :) –