CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

利用DLL封装重用窗体的问题——————在线等待!!!!

楼主wchb(漂零)2003-12-01 16:51:48 在 Delphi / VCL组件开发及应用 提问

大家好:  
            我用Delphi   7   写了一个串口通讯应用程序,它的“工程文件”的代码如下:  
  ************************************************************************  
  program   Project1;  
   
  uses  
      Forms,  
      Unit1   in   'Unit1.pas'   {Form1};  
   
  {$R   *.res}  
   
  begin  
      Application.Initialize;  
      Application.CreateForm(TForm1,   Form1);  
      Application.Run;  
  end.  
   
  *************************************************************************  
   
  这个应用程序能实现一个完整的通讯功能。现在我想把它生成DLL格式的动态连接库  
  文件,用来让非Delphi程序调用。  
   
  请问各位高手我应该怎么改呢?请前辈们指教。 问题点数:20、回复次数:6Top

1 楼flyforlove(吾将远去)回复于 2003-12-01 17:05:11 得分 0

如果你这个程序用了控件,必须要用form当容器的话,  
  那就在工程文件里定义创建窗体,撤销窗体,以及你想要调用的函数。  
   
  如果你没有用什么控件也不用form做容器的话,  
  就不要封装form了,按照一般的dll文件做法,直接把你想要调用的函数输出就好了。  
   
  Top

2 楼flyforlove(吾将远去)回复于 2003-12-01 17:06:52 得分 0

http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=68276Top

3 楼wchb(漂零)回复于 2003-12-01 17:20:16 得分 0

flyforlove(为情飞)  
      您好:  
      我的这个程序用了控件,必须要用form当容器。请您简单的给我个提示好吗?没有别的输出  
  函数,只是为了让非Delphi程序调用这个动态连接库是出现这个应用程序窗体。  
      请指导。  
  我先到http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=68276     看看太谢谢你了。Top

4 楼wchb(漂零)回复于 2003-12-01 18:12:06 得分 0

怎么没人回答了啊啊》???  
  俺还不明白啊!  
  第一次真的不知道怎么做啊     ?  
   
  求求了啊   !!!!!!!!!!!!!!????????????????Top

5 楼flyforlove(吾将远去)回复于 2003-12-01 21:55:25 得分 20

http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=68276  
  这个帮助不是已经说得很清楚了吗?  
  你还有什么不明白的?  
  我给你一个简单的示例,你自己按照改吧。  
   
  dll工程文件  
  library   Project2;  
   
  uses  
      SysUtils,  
      Classes,  
      forms,  
      Unit2   in   'Unit2.pas'   {Form1};  
   
  {$R   *.res}  
  procedure     LoadForm(AppHandle:THandle);stdcall;  
  begin  
        Application.Handle:=AppHandle;  
        Form1:=TForm1.Create(Application);  
        Form1.Show;  
  end;  
  procedure     UnLoadForm();stdcall;  
  begin      
        if     Assigned(Form1)     then      
                FreeAndNil(Form1);      
  end;  
  exports  
  LoadForm,  
  UnLoadForm;  
  begin  
  end.  
   
  调用dll的工程unit1.pas  
   
  unit   Unit1;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,  
      Dialogs,   StdCtrls;  
   
  type  
      TForm1   =   class(TForm)  
          Button1:   TButton;  
          Button2:   TButton;  
          procedure   Button1Click(Sender:   TObject);  
          procedure   Button2Click(Sender:   TObject);  
      private  
          {   Private   declarations   }  
      public  
          {   Public   declarations   }  
      end;  
   
  var  
      Form1:   TForm1;  
   
      procedure     LoadForm(AppHandle:THandle);stdcall;external   'Project2.dll';  
      procedure     UnLoadForm();stdcall;external   'Project2.dll';  
  implementation  
   
  {$R   *.dfm}  
   
  procedure   TForm1.Button1Click(Sender:   TObject);   //打开窗体。  
  begin  
  loadform(application.Handle);  
  end;  
   
  procedure   TForm1.Button2Click(Sender:   TObject);   //关闭窗体。  
  begin  
  UnLoadForm();  
  end;  
   
  end.  
  Top

6 楼TOBCB(修炼DELPHI)回复于 2003-12-02 09:33:57 得分 0

与这个类似,帮忙看看:  
  http://expert.csdn.net/Expert/topic/2516/2516793.xml?temp=.2864191Top

相关问题

  • 能用dll封装窗体吗
  • 关于DLL中封装MDI窗体的问题.
  • 如何把socket封装在没有窗体的dll中?????
  • DLL封装窗体出错,望高手指点。
  • 【求助】dll 中如何 封装MDI 子窗体??
  • 关于dll封装mdi子窗体 第二帖!!!
  • DLL封装MDI主窗体的问题,请高手指点?
  • dll窗体重用性的问题,请高手指导
  • 请教用DLL封装MDI子窗体的方法以及主窗体是如何调用的
  • 如何创建封装控件的DLL,以供主窗体程序调用?

关键词

  • .net
  • 函数
  • 文件
  • 控件
  • 应用程序
  • csdn
  • dll
  • application
  • asp
  • 窗体

得分解答快速导航

  • 帖主:wchb
  • flyforlove

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo