一个c/s程序越来越大。exe文件也越来越大了。用dll解决的话。有这方面的示范吗?(100)

F

fly555

Unregistered / Unconfirmed
GUEST, unregistred user!
.exe文件快要有6M了。以后要达到10多M呀。用dll解决的话。有这方面的示范吗?
 
最好用bpl解决。
 
我弄个简单的file->new->dll wizard 简单的调用,代码如下library setnum;{ Important note about DLL memory management: ShareMem must be the first unit in your library's USES clause AND your project's (select Project-View Source) USES clause if your DLL exports any procedures or functions that pass strings as parameters or function results. This applies to all strings passed to and from your DLL--even those that are nested in records and classes. ShareMem is the interface unit to the BORLNDMM.DLL shared memory manager, which must be deployed along with your DLL. To avoid using BORLNDMM.DLL, pass string information using PChar or ShortString parameters. }uses SysUtils, Classes;{$R *.res}Function AddNO(i,m:integer):integer;stdcall;begin result:=i+m;end; Exports AddNO;beginend.用Ctrl+F9编译下发现你保存单元的路径下面有个。dll的文件。下面是调用这个dll文件。unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation Function AddNO(i,m:integer):integer;stdcall;external 'setnum.dll';{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);var lint:array of integer;begin setlength(lint,3); fillchar(lint,sizeof(lint),1); showmessage(inttostr(AddNO(1,2)));end;end.注意函数名一定要和你dll里面的一致(大小写一样),参数随意。并且dll文件和你调用代码的文件在相同的路径下面
 
setlength(lint,3); fillchar(lint,sizeof(lint),1);这两句没有用删掉就好了
 
用DLL的话加起来更大,如果你只是为了缩小大小的话,这是实现不了的
 
1,我是要把我的一部分窗体*.dfm 与 *.pas 都做到.dll 里。,2,加起来更大不管。就是可执行文件想小一点。
 
我的exe已经10M了, 还没着急呢
 
exe 压缩 upx 之啊
 
才10M,有什么问题,我们的EXE文件已经30多M了,DLL文件也都有好几个10多M的了。照常使用。
 
模块化呀。form放dll也可以的。或者多个exe。具体视你程序结构规划了
 
build with runtime packages 即可
 
bpl+dll插件框架
 
把一些窗体和库函数单独分离成DLL形式,或者采用带运行时的形式发布。
 
用BPL了,我的都是用BPL.
 
程序写不到10MB的,估计图片等资源太多。
 
还是用bpl 吧
 

Similar threads

S
回复
0
查看
950
SUNSTONE的Delphi笔记
S
S
回复
0
查看
774
SUNSTONE的Delphi笔记
S
顶部