• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

delphi 程 序从exe运行改成dll库

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

第一种方法:

具体步骤:

1、生成新的或着打开已经存在的工程文件(DPR)(Project1.dpr)。

2、选择【View】—>【Project Manager】,选中【ProjectGroup】,然后点击【New】按纽新建一个DLL文件;

3、保存DLL文件,修改DLL文件的名称(ExeToDLLProject)与工程组的名称(ExeToDLLProjectGroup),保存成功后,会生成了一个DLL工程文件(ExeToDLLProject.dpr)和一个工程组文件(ExeToDLLProjectGroup.bpg),这个工程组由DLL和EXE组成(在【View】->【Project Manager】中看到, 选择【View】—>【Project Manager】,选中EXE工程或DLL工程,然后点击【Active】,可以切换当前工作的工程);

4、点击工具栏上【Add File To Project】,或者使用快捷键【Shift + F11】,把EXE工程文件中的所有的.pas文件加入到DLL工程中,(如:Unit1.pas)   

5、当EXE工程设为当前活动的工程,然后在工程文件中,添加代码:

5、把DLL工程设为当前活动的工程,然后【Project】->【View Source】,打开DLL工程的源代码,在里面添加代码:

library ExeToDLLProject;

uses

  SysUtils,

  Classes,

  Forms,

  Controls,

  Unit1 in \'Unit1.pas\' {Form1},

 

{$R *.res}

 

function ShowForm:TModalResult; stdcall;

var

  Form1: TForm1;

begin

  Form1 := TForm1.Create(nil);

  Form1.ShowModal;

  FreeAndNil(Form1);

  Result := MrNo;

end;

 

exports

  ShowForm; //定义出口函数

begin

end.

 

第二种方法:

1、打开项目文件(.DPR),删除单元底部begin和end.之间的所有语句(一般情况下这些语句是由Delphi自动生成的)。如果项目中没有用到Form,则从uses子句中删除表单单元(Form);

2、可以在单元底部的begin语句之前加入自己定义的其他函数或者过程,用于输出。添加主窗体的输出函数:  

function ShowForm:TModalResult; stdcall;

var

  Form1: TForm1;

begin

  Form1 := TForm1.Create(nil);

  Form1.ShowModal;

  FreeAndNil(Form1);

  Result := MrNo;

end; 

3、在单元底部的begin语句之前加入一个exports小节,然后写出所有想要输出的函数或过程的名字(最好指定索引号)。如 exports ShowForm; //定义出口函数

4、将项目文件顶部的保留字program改为library。  

5、完成,可以编译了。   
  

现在就可以在其他程序中调用本项目中的函数和过程了,只要执行ShowForm就可以执行这个项目,和执行原来的可执行文件一模一样。  

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi 的内存操作函数(6): 跨进程的内存分配发布时间:2022-07-18
下一篇:
Delphi下OpenGL2d绘图(04)-画四边形发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap