源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

delphi中一个值得大家来考虑的DLL问题

  • 时间:2021-12-12 01:32 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:delphi中一个值得大家来考虑的DLL问题
以下是我的原代码: ========================================================================================== DPR  单元代码 program Mdiform; uses   Forms,   UMdiform in ´UMdiform.pas´ {Mainform},   UDM in ´UDM.pas´ {GlobalDM: TDataModule},   UFun in ´UFun.pas´; {$R *.res} begin   Application.Initialize;   Application.CreateForm(TMainform, Mainform);   Application.Run; end. =============================================================================================== 主窗体代码: unit UMdiform; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs, Udm,StdCtrls; type   TMainform = class(TForm)     Button1: TButton;     procedure Button1Click(Sender: TObject);     procedure FormCreate(Sender: TObject);   private     { Private declarations }   public      MyHandle:HWND;     { Public declarations }   end; var   Mainform: TMainform; type   T_ShowTestMng=function (var adm:TMainform) : Boolean; StdCall; implementation {$R *.dfm} procedure TMainform.Button1Click(Sender: TObject); var    Lib_         :THandle;   _ShowTestMng :T_ShowTestMng; begin   Lib_:=LoadLibrary(pchar(´MdiChild.dll´));   try     @_ShowTestMng:=GetProcAddress(Lib_,´_ShowTestMng´);     if not(@_ShowTestMng=nil) then       _ShowTestMng(Mainform);   finally     FreeLibrary(Lib_);   end; end; procedure TMainform.FormCreate(Sender: TObject); begin  MyHandle:=Application.Handle; end; end. ============================================================================================== 子窗体DLL代码: library MdiChild; uses   ShareMem,   UMdiform,  //此单元为父窗体单元,在顶目设置中我已经设置了搜索此单元在路径。   Forms,   SysUtils,   Classes,   UChild in ´UChild.pas´ {FrmChild};//FrmChild子窗体的FormStyle属性为FsMDIChild {$R *.res} function _ShowTestMng(var adm:TMainform) : Boolean; StdCall; begin   result:=true;   Application.Handle:=adm.MyHandle;   Application.CreateForm(TFrmChild,FrmChild);   //程序就出错在此:出错原因是:Cannot create form. No MDI Forms are currently active.   FrmChild.Show; end; exports     _ShowTestMng; end.
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部