Blue
Red
Green
Orange
Voilet
Slate
Dark

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

F

fly555

Unregistered / Unconfirmed
GUEST, unregistred user!
.exe文件快要有6M了。以后要达到10多M呀。用dll解决的话。有这方面的示范吗?
 
K

K

Unregistered / Unconfirmed
GUEST, unregistred user!
最好用bpl解决。
 
S

sexhotel11

Unregistered / Unconfirmed
GUEST, unregistred user!
我弄个简单的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文件和你调用代码的文件在相同的路径下面
 
S

sexhotel11

Unregistered / Unconfirmed
GUEST, unregistred user!
setlength(lint,3); fillchar(lint,sizeof(lint),1);这两句没有用删掉就好了
 
X

xianjun

Unregistered / Unconfirmed
GUEST, unregistred user!
用DLL的话加起来更大,如果你只是为了缩小大小的话,这是实现不了的
 
F

fly555

Unregistered / Unconfirmed
GUEST, unregistred user!
1,我是要把我的一部分窗体*.dfm 与 *.pas 都做到.dll 里。,2,加起来更大不管。就是可执行文件想小一点。
 
D

delphi2011

Unregistered / Unconfirmed
GUEST, unregistred user!
我的exe已经10M了, 还没着急呢
 
L

LSUPER

Unregistered / Unconfirmed
GUEST, unregistred user!
exe 压缩 upx 之啊
 
Z

zbdzjx

Unregistered / Unconfirmed
GUEST, unregistred user!
才10M,有什么问题,我们的EXE文件已经30多M了,DLL文件也都有好几个10多M的了。照常使用。
 
J

johui

Unregistered / Unconfirmed
GUEST, unregistred user!
模块化呀。form放dll也可以的。或者多个exe。具体视你程序结构规划了
 
H

hhjjhhjj

Unregistered / Unconfirmed
GUEST, unregistred user!
build with runtime packages 即可
 
K

kkyy

Unregistered / Unconfirmed
GUEST, unregistred user!
bpl+dll插件框架
 
J

jacket84

Unregistered / Unconfirmed
GUEST, unregistred user!
把一些窗体和库函数单独分离成DLL形式,或者采用带运行时的形式发布。
 
L

louqing_2

Unregistered / Unconfirmed
GUEST, unregistred user!
用BPL了,我的都是用BPL.
 

张辉明

Unregistered / Unconfirmed
GUEST, unregistred user!
程序写不到10MB的,估计图片等资源太多。
 

文生

Unregistered / Unconfirmed
GUEST, unregistred user!
还是用bpl 吧
 

Similar threads

S
回复
0
查看
959
SUNSTONE的Delphi笔记
S
S
回复
0
查看
779
SUNSTONE的Delphi笔记
S
顶部 底部