请教dll问题,已经完成并通过测试的mdi程序能否整个做成dll? 就是说本来已经完成的一个小软件,是mdi窗体的,现在因为这个软件是放在网上让别人下载使用的,但是又经常需要对这个软件进行更新,包括主窗口界面也需要更新,所以想添加一个功能,就是先检查是否有更新,如有更新则先下载更新,然后才执行主程序,所以我的想法就是把原来的程序做成dll提供一个接口由另外的程序调用,那个调用的程序来完成检查更新这个dll,呵呵不知道我说明白了没?不知道这个方法可不可行,希望大家给点建议。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哈那太好了,那么该如何做呢,我现在正在做,然后有很多问题,那就请继续关注吧 :)首先的问题就是新建了一个dll的工程,把原来程序的form、unit都加了进来,编译通过,那么该如何定义这个接口呢,如何让主程序直接调用这个接口就能够打开原来的mdi主窗口,实现原来的功能界面呢?能否给段简单的代码,多谢! ////////////////////////////////////////////////// dll中的代码////////////////////////////////////////////////library UseDll;uses Windows,Variants,StdCtrls, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Form_Unit in 'Form_Unit.pas' {fmMain}, uChild in 'uChild.pas' {fmChild};procedure LoadForm(mainApp: TApplication); stdcall;begin application := mainApp; application.CreateForm(TfmMain,fmMain);end;{$R *.res}exports LoadForm;beginend.//////////////////////////////////////////////////////////////////////////////////////////////////主程序中的代码////////////////////////////////////////////////program P111;uses Forms, u111 in 'u111.pas' {Form1};procedure LoadForm(mainApp: TApplication); stdcall;external 'useDll.dll';{$R *.res}begin Application.Initialize; LoadForm(application); //Application.CreateForm(TForm1, Form1); Application.Run;end.////////////////////////////////////////////////以上分别为dll中的代码和主程序中的代码,dll中封装了一个fsMDIForm和一个fsMDIChild,执行主程序确实创建了fsMDIForm并且fsMDIForm中的打开子窗口的事件也能正确执行,现在问题是当关闭主窗口时出现错误,请帮忙分析一下 to stanely(俺是邢她汉子): 两个进程?可否讲的具体些,我对进程不大熟悉,给个思路先啦 :) 哈哈,我才搞明白stanely(俺是邢她汉子)的意思,原来就是两个exe呀,新做一个程序检查有无更新,完了直接调用执行先做好的那个可执行程序就行啦,哈哈如此简单!真是晕!谢谢各位,虽然遇到的问题没解决,但主要问题——更新升级已经解决了,结帐喽! UniQuery 排序问题 我居然关闭不窗口,关闭窗口有那么难么?? 如何用外部事件让循环停下来 我想问一下,有关Indy版本的问题? 如何在WebBrowser designMode下,插入Script代码 请教!如何排序?我问的问题都没人给出方法啊 今天只想找地方散分!! 求助DELPHI技术站点! 怎样对表中的"GRAPHIC"的字段进行付值? 如何用ImageList中的Icon动态重画Image的Picture,ji ji ji 请问怎样在启动画面显示同时主程序也同时运行,象photoshop启动时那样??? 找不到的控件……好奇怪
// dll中的代码
////////////////////////////////////////////////
library UseDll;uses
Windows,Variants,StdCtrls,
Messages,
SysUtils,
Classes,
Graphics,
Controls,
Forms,
Dialogs,
Form_Unit in 'Form_Unit.pas' {fmMain},
uChild in 'uChild.pas' {fmChild};procedure LoadForm(mainApp: TApplication); stdcall;
begin
application := mainApp;
application.CreateForm(TfmMain,fmMain);
end;{$R *.res}
exports
LoadForm;
begin
end.
////////////////////////////////////////////////////////////////////////////////////////////////
//主程序中的代码
////////////////////////////////////////////////
program P111;uses
Forms,
u111 in 'u111.pas' {Form1};procedure LoadForm(mainApp: TApplication); stdcall;external 'useDll.dll';{$R *.res}begin
Application.Initialize;
LoadForm(application);
//Application.CreateForm(TForm1, Form1);
Application.Run;
end.
////////////////////////////////////////////////以上分别为dll中的代码和主程序中的代码,dll中封装了一个fsMDIForm和一个fsMDIChild,执行主程序确实创建了fsMDIForm并且fsMDIForm中的打开子窗口的事件也能正确执行,现在问题是当关闭主窗口时出现错误,请帮忙分析一下
两个进程?可否讲的具体些,我对进程不大熟悉,给个思路先啦 :)