델파이에서 Dll  라이브러리의 루틴들을  다음과 같은 두가지 방법으로 호출해 사용하셨습니다.  

1. 동적 호출

    LoadLibrary, GetProcAddress, FreeLibrary등의 윈도우 함수를 사용하여 호출하는 방식

  

2, 정적 호출

   procedure Display_About; stdcall;

   External 'PAboutBox.dll';

 

정적 호출의 경우는 어플리케이션을 실행하면 라이브러리를 로드한 상태에서 프로시저나 함수를 호출하는 방식이기때문에

메모리 효율성에서 동적 방식보다 더 많은 메모리를 사용하게 됩니다.

 

이를 보강하기 위해 델파이 2010 버전부터 추가된 Delayed 라는 지시어를 사용할 수 있습니다. 라이브러리를 미리 로딩하는 것이 아니라 함수나 프로시자 호출시에 라이브러리가 로드되고 프로그램이 종료될때 라이브러리가 내려갑니다.

 

  procedure Display_About; stdcall;

  External 'PAboutBox.dll delayed';

 

만일 프로그램에서 정적 호출을 많이 사용하신다면 delayed 지시어만 추가하여도 메모리 효율성에서 훵씬 더 좋은 프로그램으로 업그레이드 하실 수 있습니다.