DLL文件中Form的使用

原创 2002年01月16日 17:39:00


主题:DLL文件中Form的使用(2)

贴出此文之前,未查阅过任何相似文章,如有相同,敬请见谅,并告示(注:本人曾就同一DLL中一窗体调用附窗体,如何实现之问题,请教过一前辈,但前辈笑笑未言),此为我在写动态元件时想到的一方法,结果通过,各位见谅。我为初学,而求学路见艰难,贴出只望对象我一样初学者给点帮助,无他。
library DLLPJ;

uses
  SysUtils,
  Classes,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

exports
  ShowMainPRGWin;
 
begin
end.
----------
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Unit2,Dialogs, StdCtrls;
  //1.附窗体单元加在此处
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Form2: TForm2; //2.附窗体定义在此处
// Declare the export function of windows of the main DLL
function ShowMainPRGWin(AHandle:THandle):BOOL;StdCall;

implementation

{$R *.dfm}
function ShowMainPRGWin(AHandle:THandle):BOOL;
begin
  Form1:=TForm1.Create(Application);
  Form2:=TForm2.Create(Application); //3.创建附窗体
  try
    Form1.ShowModal;
    Result:=False;
  Finally
    Form1.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2.ShowModal;//4.在主窗体上调用附窗体
end;

end.
------------
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm2 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

end.
----------
//在其他窗体上调用DLL的定义及方法
procedure ShowMainPRGWin(AHandle:THandle);StdCall External 'DLLPJ.DLL';

ShowMainPRGWin(1);

DLL中使用Form问题

DLL中使用Form问题 在做大型项目的时候,通过一个主程序(EXE)带n个DLL的模式,是一种通用的做法,这样做的优点有: 1、便于项目的模块化,可以把逻辑上相近的模块封装到一起; 2、便于多人同时...
  • laizx
  • laizx
  • 2004年07月04日 22:44
  • 706

读取 为 指定 dll 添加的 配置文件App.config

读: /// /// 获取配置文件AppSeting节点数据信息 /// /// /// public st...
  • yan_hyz
  • yan_hyz
  • 2013年04月28日 13:16
  • 2957

DLL中.DEF文件的使用

DLL中导出函数的声明有两种方式:一种为在函数声明中加上__declspec(dllexport),这里不再举例说明;另外一种方式是采用模块定义(.def) 文件声明,.def文件为链接器提供了有关被...
  • piaopiaopiaopiaopiao
  • piaopiaopiaopiaopiao
  • 2014年07月27日 22:26
  • 1265

DLL创建及使用方法

初次接触DLL文件的使用,在网上找了许多资料自己动手写了一些代码,多谢网络上许多大神的教程。俗话说眼过千遍不如手过一遍,现在将这些总结一下也算是对自己的一个提高吧。 1.DLL创建方法 1...
  • twtian01
  • twtian01
  • 2014年08月29日 16:27
  • 2649

如何删除正在使用中的dll文件

在论坛有时候老听网友说某某文件删不掉啊。。之类的。而且有很多都是dll文件。虽然解决这个问题的方法有很多种。而且也可以把他删除,但是网友们有没有想过是为什么删不掉呢??这是因为你运行的某个程序正在调用...
  • yluck
  • yluck
  • 2007年07月20日 10:43
  • 4843

调用DLL文件中的FORM

来源:http://blog.csdn.net/wnhoo/archive/2004/08/20/79738.aspx作者:e梦缘好久发表文章了!!! 调用DLL文件中的FORM,具体实现过程如下:l...
  • yuanqingfei
  • yuanqingfei
  • 2004年08月24日 01:11
  • 1370

在VS中添加.dll文件

从同事那里拷贝过来的程序,运行的时候总是出现.dll文件缺失的报错,如图: 但是在我的工程中明明又有这个.dll文件,只是不是和.exe一个文件。把.dll文件拷贝到.exe文件夹下肯定是能解决问题,...
  • qq_27587417
  • qq_27587417
  • 2016年09月02日 09:14
  • 1740

利用VS2010生成DLL文件及DLL中函数和全局变量的使用

一、首先利用VS2010生成DLL文件,步骤如下 1、打开VS2010,在左边的框栏中选择C++,中间选择win32控制台应用程序,如下图 2、确认后,弹出下面对话框 3、选择下一步,...
  • chen244798611
  • chen244798611
  • 2015年12月28日 22:43
  • 1611

DLL中使用ADO的解决方法

在DLL中使用ADO,总是出现enum type redefinition错误信息表示有定义冲突。 通常这种情况是由于把ADO(通过#import, 或adoint.h)和MFC DAO或DAO SD...
  • lyzhm
  • lyzhm
  • 2007年03月29日 13:28
  • 699

delphi 在DLL中添加窗体

方案一:   在DLL工程中新建一个FORM窗体.在窗体中加入如下代码:   1.首先需要再 implementation 之前声明下以下函数. 1 procedure Sy...
  • farrellcn
  • farrellcn
  • 2016年05月25日 10:44
  • 1729
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DLL文件中Form的使用
举报原因:
原因补充:

(最多只允许输入30个字)