나는 "Hydra"여행을 나 자신으로 시작하지만, 나는 당신의 질문에 답하기 위해 최선을 다할 것입니다.
Q1. 이것은 당신의 상황에 대한 더 많은 정보 없이는 대답하기가 어렵습니다. Delphi 코드 기반에 액세스 할 수 있습니까? 이미 플러그인이있는 기존 응용 프로그램에 플러그인을 추가 하시겠습니까, 아니면 방금 Hydra 플러그인 프레임 워크를 응용 프로그램에 추가하기 시작 했습니까? 지금은 기존 호스트 응용 프로그램에 새 플러그인을 추가하고 호스트와 플러그인 간의 통신에 사용할 사용자 정의 인터페이스가 포함 된 .pas 파일이 있다고 가정합니다. 그렇다면 다음이 당신을 위해 일해야합니다.
- Visual Studio에서 새로운 "RemObjects Hydar"-> "Plugin Module"프로젝트를 시작해야합니다.
- 가져 오기 "도구"이동하여 통신 인터페이스를 포함하는 일단의 .pas 파일 -> "히드라"-> "델파이 단위에서 가져 오기 인터페이스"
- 이 새로운 "RemObjects에 히드라를"추가 -> "(비) 비주얼 플러그인 "항목을 프로젝트에 추가하십시오.
- 새 플러그인 클래스에 인터페이스를 추가하고 인터페이스의 메소드를 구현하십시오.
그럴 것입니다. 이제 호스트 응용 프로그램에서 플러그 인을 쿼리하여 구현 된 인터페이스를 확인한 다음 필요한 메서드를 호출 할 수 있습니다.
이이 플러그인 클래스는
type
[Plugin, NonVisualPlugin]
MyPlugin = public partial class(RemObjects.Hydra.NonVisualPlugin, IMyInterface)
private
protected
method Dispose(aDisposing: boolean); override;
method MyMethod(const MyInput: String; out MyOutput: String);
public
constructor;
end;
Q2 어떻게 보일지 같은 것입니다 가져온 인터페이스 파일이
type
{$REGION Attributes}
[Guid('9D445B3E-CA9F-4C67-815A-F5EC6BAB5D60')]
{$ENDREGION}
IMyInterface = public interface(IHYCrossPlatformInterface)
method MyMethod(const MyInput: String; out MyOutput: String);
end;
모양을합니다 같은 것입니다. 내가 아는 한 모듈 컨트롤은 플러그인 모듈에있는 모든 플러그인을 호스트 응용 프로그램에 등록해야합니다. 플러그인에서 플러그인을 사용하여 호스트 응용 프로그램과 통신 할 수도 있습니다.
3. THYModuleManager를 참조한다고 가정합니다. 이것은 (다른 것들 중에서) 런타임에 모든 플러그인을로드하는 데 사용됩니다.
희망이 있습니다.