Delphi [추가된 문법] DLL 정적 호출 시 지연 호출(Delayed)-델파이 2010 추가
2016.12.27 16:39
델파이에서 Dll 라이브러리의 루틴들을 다음과 같은 두가지 방법으로 호출해 사용하셨습니다.
1. 동적 호출
LoadLibrary, GetProcAddress, FreeLibrary등의 윈도우 함수를 사용하여 호출하는 방식
2, 정적 호출
procedure Display_About; stdcall;
External 'PAboutBox.dll';
정적 호출의 경우는 어플리케이션을 실행하면 라이브러리를 로드한 상태에서 프로시저나 함수를 호출하는 방식이기때문에
메모리 효율성에서 동적 방식보다 더 많은 메모리를 사용하게 됩니다.
이를 보강하기 위해 델파이 2010 버전부터 추가된 Delayed 라는 지시어를 사용할 수 있습니다. 라이브러리를 미리 로딩하는 것이 아니라 함수나 프로시자 호출시에 라이브러리가 로드되고 프로그램이 종료될때 라이브러리가 내려갑니다.
procedure Display_About; stdcall;
External 'PAboutBox.dll delayed';
만일 프로그램에서 정적 호출을 많이 사용하신다면 delayed 지시어만 추가하여도 메모리 효율성에서 훵씬 더 좋은 프로그램으로 업그레이드 하실 수 있습니다.