首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

生手求教一个含窗体的DLL的例子

2013-03-01 
新手求教一个含窗体的DLL的例子。自己想做个可以传出 参数 的DLL,百度里的都好复杂。请有空的老师帮忙做个最

新手求教一个含窗体的DLL的例子。
自己想做个可以传出 参数 的DLL,百度里的都好复杂。请有空的老师帮忙做个最简单的DLL,并说说要怎么调用,万分感谢。

调用DLL时,出现一个窗体,按下窗体按钮就 传出 一个 参数,然后关闭窗体,并释放内存。 谢谢。 dll
[解决办法]
弄了例程,你照虎画猫吧
http://pan.baidu.com/share/link?shareid=366238&uk=2500077576

[解决办法]
看本例可以传入参数到Dll
http://pan.baidu.com/share/link?shareid=366373&uk=2500077576
[解决办法]
Dll的项目文件


library MyDll;
uses
  SysUtils,
  Classes,
  Unit13 in 'Unit13.pas' {Form13};

{$R *.res}

function GetForm(const Tag : integer) : Integer;
begin
  //TForm13中有一个TButton, ModalResult属性设为mrOk;
  with TForm13.Create(nil) do
  begin
    Caption := Format('Tag:%d', [Tag]);
    result := ShowModal;
    free;
  end;
end;

exports
  GetForm;

begin
end.


调用单元的代码, 两个TButton, 分别为btn1, btn2
//静态调用 Begin
function GetForm(const Tag : integer) : Integer; external 'MyDll.dll';
procedure TForm14.btn1Click(Sender: TObject);
var
  n : integer;
begin
  n := GetForm(1);
  caption := Format('Result:%d', [n]);
end;
//静态调用 End

//动态调用 Begin
procedure TForm14.btn2Click(Sender: TObject);
type
  TGetForm = function (const Tag : integer) : Integer; stdcall;
var
  DllForm : TGetForm;
  DllHandle : THandle;
  n : integer;
begin
  DllHandle := LoadLibrary(PChar('MyDll.dll'));

  try
    if DllHandle <> 0 then
    begin
      DllForm := GetProcAddress(DllHandle, 'GetForm');
      n := DllForm(1);
      caption := Format('Result:%d', [n]);
    end;
  finally
    FreeLibrary(DllHandle);
  end;
end;
//动态调用 End

热点排行