DELPHI 写一个DLL封装一个可输入内容的窗口,当缩主程序调用DLL后,将输入的内容返回给应用程序!

如何做??
2024-12-23 13:38:59
推荐回答(2个)
回答1:

可以使用接口来处理,先在公共单元里声明一个接口例如:
IPulgInput = interface
function GetInputString: string;
end;

在DLL的窗体里使用这个接口,把接口挂在窗口类后面,类似这样

TForm1 = class(TForm, IPulgInput)
private
function GetInputString: string;
...
end;

//声明一个生成接口实例的函数:
function LoadPulgInput: IPulgInput;

//在DLL窗体的实现部分实现之:
function LoadPulgInput: IPulgInput;
begin
Result := TForm1.Create(nil);
end;

function TForm1.GetInputString: string;
begin
result := edit1.text;
end;

在宿主程序里调用方法:

var
intf: IPlugInput;
begin
intf := LoadPulgInput;

ShowMessage(intf.GetInputString);
end;

注:在DLL的Program的Uses部分,第一行应该写上ShareMem,表示使用borlandmm.dll做为内存管理员,宿主程序也一样

回答2:

Dll中调用接口写成传参并且有返回值类型的函数,在应用程序中调用,并在程序中通过返回值和传回来的参数进行操作