2011-03-16 5 views
1

MEMPTR을 통해 진행 절차로 반환되는 char 배열에 (malloc을 사용하여) 메모리를 할당하는 공유 라이브러리가 있습니다.진행 4L SET-SIZE 문과 C-malloc

OpenEdge 설명서에서 Progress MEMPTR을 해제하려면 SET-SIZE 문을 사용하고 0으로 설정해야합니다. 뿐만 아니라

SET-SIZE(mem-pointer) = 0. 

SL의 malloc에 ​​할당 반환되는 배열의 메모리를 해제 :

그래서 제 질문은이 일을함으로써,?

그렇지 않은 경우 진행 프로세스가 완료된 후 할당 된 메모리를 해제하는 함수를 만들 수 있습니까?

그리고 마지막으로이 함수를 만들어야하는 경우 누군가 어떤 방향, 참조 설명서 또는 자습서에서 나를 가리킬 수 있습니까?

답변

0

나는 Progress에 익숙하지 않지만 MEMPTR을 사용하는 라이브러리에서 dealloc 함수를 만들고 malloced 메모리를 해제 한 다음 Progress에서 MEMPTR을 호출 한 후 MEMPTR을 해제 할 수있는 것처럼 보입니다. 첫 번째 c 함수에서 MEMPTR에 액세스 할 수 있으면 dealloc 함수에서 MEMPTR에 액세스 할 수 있어야합니다.

1

모범 사례는 "사용자가 직접 만들고 삭제합니다"입니다. 따라서 C 코드는 적절한 시간에이를 정리해야합니다. 그런 다음 4GL 코드에서 set-size (0)를 수행하십시오.

설명서는 ABL "프로그래밍 인터페이스"설명서에 있습니다. 그들은 http://communities.progress.com/pcom/docs/DOC-16074

당신이 원하는 장에서 모든 온라인 것은 :

http://documentation.progress.com/output/OpenEdge102b/oe102bhtml/wwhelp/wwhimpl/js/html/wwhelp.htm#href=dvpin/15dvpinch08epi.17.1.html