关于DLL文件的问题,大虾请进!!!! 在开发程序时,怎么能够把窗体也做成dll文件并调用。也就是:比如我以前做的登录窗口都是直接建立窗体,在上面放上相应的控件,现在想把这整个窗体做成DLL,以便于以后调用。最好能给出相应的例子或相关的教程。在此先谢谢了!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 DLL进行初化,并写入相应的入口函数及出口函数 public linkDir:string; AttNum:Word; fanhuizhi:string; ADOTable1:TADOTable; { Public declarations } end;function AddFirstAttribForm_1(Ahandle:THandle;linkDir:string;Linker_1:TADOConnection):Word;StdCall;implementation{$R *.dfm}function AddFirstAttribForm_1(Ahandle:THandle;linkDir:string;Linker_1:TADOConnection):Word;var AddFirstAttribForm: TAddFirstAttribForm;begin Application.Handle:=Ahandle; AddFirstAttribForm:=TAddFirstAttribForm.Create(Application); AddFirstAttribForm.ADOTable1:=TADOTable.Create(Application); try AddFirstAttribForm.ADOTable1.Connection:=Linker_1; AddFirstAttribForm.linkDir:=linkDir; AddFirstAttribForm.ShowModal; result:=AddFirstAttribForm.AttNum; finally AddFirstAttribForm.ADOTable1.Free; AddFirstAttribForm.Free; end;end;在你的工程的第一个窗口的unit单元里写入上代码:这是在new dll winzard 把这个单元加进去, 并exports AddFirstAttribForm_1这就是你的动态连接库的入口函数 直接调用 和普通DLL一样的,先建个DLL,新建窗体,当正常的应用程序设计。然后在外接函数里把那个窗体创建一下再显示就可以了。外接声明:exports Show_Form;接口函数声明:function Show_Form(Han:THandle):boolean;stdcall;接口函数(可以写在窗体的implementation下面):function Show_Form(Han:THandle):boolean;begin application.handle:=Han; //获得主程序句柄。 Form1:=TForm.Create(application); Form1.ShowModal;end; 我按照楼上的做的出现下面错误啊[Error] Unit1.pas(25): Undeclared identifier: 'handle' 为什么Delphi7编译下的程序会有Access Violation的错误? Access数据库的疑问 请教各位,DELPHI中如何动态连接DB2 请问如何在程序运行的窗口中不显示delphi的图标啊? 请问borland为delphi写的那个小的内存检查工具叫什么名字? 关于连接数据库时组件的选择问题 什麼原因使使程序不能執行,報地址錯誤:77F49957 不肯借、、、 驱动级ie插件找人写 新手求delphi 读写access 例子 请问在delphi中如何引用gdiplus.dll动态联接库呢?如有使用例子,能否给小弟看一看呢?谢谢。 短信开发中的问题
linkDir:string;
AttNum:Word;
fanhuizhi:string;
ADOTable1:TADOTable;
{ Public declarations }
end;function AddFirstAttribForm_1(Ahandle:THandle;linkDir:string;Linker_1:TADOConnection):Word;StdCall;implementation
{$R *.dfm}function AddFirstAttribForm_1(Ahandle:THandle;linkDir:string;Linker_1:TADOConnection):Word;
var
AddFirstAttribForm: TAddFirstAttribForm;
begin
Application.Handle:=Ahandle;
AddFirstAttribForm:=TAddFirstAttribForm.Create(Application);
AddFirstAttribForm.ADOTable1:=TADOTable.Create(Application);
try
AddFirstAttribForm.ADOTable1.Connection:=Linker_1;
AddFirstAttribForm.linkDir:=linkDir;
AddFirstAttribForm.ShowModal;
result:=AddFirstAttribForm.AttNum;
finally
AddFirstAttribForm.ADOTable1.Free;
AddFirstAttribForm.Free;
end;
end;在你的工程的第一个窗口的unit单元里写入上代码:
这是在new dll winzard 把这个单元加进去, 并exports AddFirstAttribForm_1
这就是你的动态连接库的入口函数 直接调用
exports
Show_Form;接口函数声明:function Show_Form(Han:THandle):boolean;stdcall;
接口函数(可以写在窗体的implementation下面):
function Show_Form(Han:THandle):boolean;
begin
application.handle:=Han; //获得主程序句柄。
Form1:=TForm.Create(application);
Form1.ShowModal;
end;
[Error] Unit1.pas(25): Undeclared identifier: 'handle'