플러그인 기술의 출발점은 주로 메인 프로그램(프레임워크 프로그램)을 다시 컴파일하고 게시할 필요 없이 소프트웨어가 기능을 유연하게 확장할 수 있도록 하는 것입니다. 그 원리는 아주 간단합니다. 소프트웨어의 기능은 프레임워크 프로그램과 플러그인에 의해 결정됩니다. 프레임워크 프로그램과 플러그인 사이에는 특정 인터페이스가 있으며 이를 통해 소프트웨어 기능을 구현하기 위해 데이터 또는 제어 정보를 전달해야 합니다. 따라서 프로그램(또는 기타 기능적 엔터티)이 이 인터페이스를 준수하는 한 이를 프레임워크 프로그램의 플러그인이라고 합니다.
플러그인 엔터티는 일반적으로 두 가지 유형으로 구분됩니다. 하나는 동적 라이브러리, Exe 프로그램 등과 같은 논리를 포함하는 프로그램이고, 다른 하나는 구성 정보 집합입니다. 전자의 방법은 주로 드로잉 소프트웨어와 미디어 재생 소프트웨어에 사용되며, 후자의 방법은 복잡한 계산이 필요하지 않은 소프트웨어 및 기타 기능 모듈의 스킨 기능을 구현하는 데 주로 사용됩니다. ). Ada Software의 Lianliankan과 같이 소프트웨어 레벨도 이러한 방식으로 구현됩니다.
이 글에서는 독자들이 플러그인 프로그램을 설계하는 기초로서 Dll 플러그인 프레임워크 프로그램을 구현하는 과정에서 Dll을 관리하기 위한 프레임워크 프로그램과 사용 예를 제공합니다. 특히 프레임워크 프로그램은 플러그인 로딩, 함수 호출, 제거라는 세 가지 기능을 완료해야 합니다.
실제로 모든 제어판 프로그램은 운영 체제용 플러그인입니다. 각 .cpl 파일은 특정 인터페이스를 구현하는 Dll이기 때문입니다. 원본 프로그램을 기반으로 특정 Windows 메시지만 처리하는 Windows 서비스 프로그램의 경우에도 마찬가지입니다.
실제로, 광범위하게 말하면 운영 체제에서 실행되는 모든 프로그램은 운영 체제 소프트웨어의 "플러그인"입니다.
실제로 델파이에는 이미 bpl이라는 플러그인 관리 프레임워크가 있습니다. 기능의 플러그인 확장은 bpl 컴포넌트 패키지를 사용하여 쉽게 달성할 수도 있습니다. 그러나 이 방법에는 단점이 있습니다. 다른 개발 도구(예: vb, vc++)를 사용한 플러그인 개발을 지원하지 않습니다.
)
untDllManager 유닛에는 두 가지 기본 클래스가 정의되어 있습니다.
TDll: 모든 Dll 클래스의 상위 클래스로, 로드 및 언로드 관련 작업을 제공합니다.
TDllManager: Dll 클래스의 컨테이너 클래스입니다. 요소를 삭제하여 Dll 엔터티 제거를 지원합니다.
다음은 클래스 다이어그램입니다.