请教:Delphi2006 for .net的最终执行文件大小....(300分)

  • 主题发起人 主题发起人 xminsong
  • 开始时间 开始时间
X

xminsong

Unregistered / Unconfirmed
GUEST, unregistred user!
新建一Vcl Forms Applictaon(For .net),不放控件,不加一行代码,最终
执行文件达12M,但随意放一Label、Button控件后, 最终执行文件只有12K!!??
有哪位大侠能告知本菜鸟?
 
这种事都有?
 
不是吧,没遇到过
如果钩上 运行时包,30几K倒是有可能
一般都300-500K
 
的确是有这个现象哦,好奇怪
 
学习。。。
 
[:)]等待中!
 
没关系吧
 
我的是:不放控件,不加一行代码,最终执行文件达1.2M,但随意放一Label、Button控件后, 最终执行文件只有12K。
 
有趣,关注
 
我发现,只要在*.dpr文件的第5行加入7,8,9这三行内容,编译后的文件就会变小。
1.program Project4;
2.{%DelphiDotNetAssemblyCompiler '$(SystemRoot)/microsoft.net/framework/v1.1.4322/System.dll'}
3.{%DelphiDotNetAssemblyCompiler '$(SystemRoot)/microsoft.net/framework/v1.1.4322/System.Data.dll'}
4.{%DelphiDotNetAssemblyCompiler '$(SystemRoot)/microsoft.net/framework/v1.1.4322/System.Drawing.dll'}
5.{%DelphiDotNetAssemblyCompiler '$(SystemRoot)/microsoft.net/framework/v1.1.4322/System.XML.dll'}
6.//只要加入以下这几行,编译后的.EXE就会变小
7.{%DelphiDotNetAssemblyCompiler 'c:/program files/common files/borland shared/bds/shared assemblies/4.0/Borland.Vcl.dll'}
8.{%DelphiDotNetAssemblyCompiler 'c:/program files/common files/borland shared/bds/shared assemblies/4.0/Borland.Delphi.dll'}
9.{%DelphiDotNetAssemblyCompiler 'c:/program files/common files/borland shared/bds/shared assemblies/4.0/Borland.VclRtl.dll'}
10.//只要加入以上这几行,编译后的.EXE就会变小
uses
System.Reflection,
System.Runtime.CompilerServices,
System.Runtime.InteropServices,
SysUtils,
 
哈哈,有意思
 
如果不加7~9行,编译出的文件可以在没有安装过BDS2006的电脑上运行的。如果加上7~9行,编译出来的exe文件必须带上Borland.Vcl.dll,Borland.Delphi.dll,Borland.VclRtl.dll
 
7,8,9行是告诉.net编译器不要把 Borland.Vcl.dll, Borland.Delphi.dll, Borland.VclRtl.dll编译进最终程序,因此体积变小。但运行时必须带 Borland.Vcl.dll, Borland.Delphi.dll, Borland.VclRtl.dll三个运行库。
 
我写了一个控件,一个文件有3万多行,并且编写成Win32/.net两用,结果打开Win32版本编译这个控件的时候,D2006象D7一样快,但打开Net版本编译时候D2006非常慢,主要是占用1G内存,系统的内存虚拟文件也被自动扩大到2G多,跟VS2005比消耗实在受不了,VS2005没有这么吃内存的,这样垃圾的编程软件我受不了,幸好通过了编译,但用这个控件来写相同的程序时,Win32版还是比.Net版要快很多,.net打开程序要花更多的时间,刷新图片也要慢些。
 
VCL.Net编译出来的程序肯定会比较慢的,主要是为了兼容以前的VCL而牺牲了性能。
 
en!如用dot net还是投入C#的怀抱算了。
 
.net 用delphi for windows form时启动速度不会比C#慢,但用delphi for VCL Form时启动速度是会比C#慢.
 
算了,结束!
 
多人接受答案了。
 
后退
顶部