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

kyosukewen 2013-02-27 06:36:44
自己想做个可以传出 参数 的DLL,百度里的都好复杂。请有空的老师帮忙做个最简单的DLL,并说说要怎么调用,万分感谢。

调用DLL时,出现一个窗体,按下窗体按钮就 传出 一个 参数,然后关闭窗体,并释放内存。 谢谢。
...全文
506 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
seagull327 2013-02-28
  • 打赏
  • 举报
回复
看本例可以传入参数到Dll http://pan.baidu.com/share/link?shareid=366373&uk=2500077576
simonhehe 2013-02-28
  • 打赏
  • 举报
回复
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
feiba7288 2013-02-28
  • 打赏
  • 举报
回复
这是我写的例子,简单明了: http://download.csdn.net/detail/feiba7288/5094359
seagull327 2013-02-27
  • 打赏
  • 举报
回复
弄了例程,你照虎画猫吧 http://pan.baidu.com/share/link?shareid=366238&uk=2500077576

16,749

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧