delphi 与 vb(40分)

  • 主题发起人 主题发起人 kenmen
  • 开始时间 开始时间
K

kenmen

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了个与win里的记事本差不多功能的程序,要300多k,但在vb的却是50多k。
请高手们谈谈。。。。为啥?
我是新手,不大明。
 
VB要它的动态连接库的。
 
制作完安装文件你就会发现,其实不会这么简单的
 
编译Delphi时,不连接*.Bpl,Delphi也会很小的。
 
想不到你到现在了还在问这个问题!
VB时MS的东西,它可以在Windows 系统里把它需要的动态连接库都放上,这样VB做的
东西就很小了。你试试打包VB的程序,看看到底哪个小?

什么叫垄断?
我们学校食堂的饭菜恶难吃,而规定校内小饭店除了炒面炒饭不允许炒菜了,
于是大家习惯了食堂的菜,都抱怨说小饭店的炒面炒饭不好吃。
 
to :wjiachun
这么惨!!!?????
我只是问问,这个问题我也曾经看过文章,是如0000所说的,
只是想弄清楚点。。。。
:)
还有人能说说吗?
 
还要说说?没什么可说的了!
把Delphi的BPL去掉,作出来的程序比VC的还小,但是不是谁的机子都有那个BPL。
 
对阿

吧bPl去掉也只有几十Kb而已....


或者试着吧Msvb50.dll 或 Msvb60dll去掉

VB的程序也有好几百Kb啦...

还可以把 MFC*.dll去掉.. 这样VC也够大的啦...
 
同意wjiachun
ms绝对垄断
 
由于操作系统是MS的,Borland无法将一些通用的包啊,库啊什么的,放到Windows中去。
所以只有在自己的编绎结果中都带上它们(缺省设置,可以改)。
 
  显然嘛……戊甲醇说得对!(其实前面的各位说的都很明白了!)OS 是 M$ 的,他们
知道自己的 VB 如果要想正确运行,必须要有那几个 .DLL(早期是 VBRUN……) 支持才行,
所以干脆在 OS 里边就把这些个东东都放进去了,这样,VB 生成的 .EXE 就显得很苗条了……
也就是说,VB 生成的程序,要想运行必须要有那几个必需的 .DLL 的!这是 M$ 的策略。
而 Borland 的策略则是 .BPL,把这个捆绑在生成的 .EXE 中,当然就大一些了……
  如果你不想捆绑这个 .BPL,一样可以去掉这个的嘛,当然,如果这样,你的程序分发
到你的客户手上以后,如果他没有这个 .BPL,你的程序要想正常运行,恐怕就有些难度了……
  正如前面的几位说的那样,如果你用 VB 的所谓的“应用程序安装向导”作一个完整的
可分发的(带安装程序的)程序试试看,呵呵~~~比 Delphi 的执行文件大多了!
  所以,前面的几位,每一位的回答都非常正确!对这个问题,回答到这里,真的象戊甲醇说
的那样,其实已经“……没什么可说的了!……”!
 
其实问题很简单.
首先你要了解解释语言和编译语言:VB是解释性语言,而Delphi是编译性语言.
VB写的程序需要解释环境(VB的一些动态连接库和程序中用到的控件),虽然EXE文件小,但是仅一个
EXE在没有装VB的系统上是不能运行的.
而Delphi与之相反.Delphi写的程序可以在干净的系统上运行(数据库程序除外).
 
用Build with runtime packages选项编译出来的程序似乎占用的内存多一些
 
***!今天偶然来一下DFW,一上来就看见这样的白痴问题!
心中那个气啊!说什么DFW也是中国最优秀的技术论坛,竟然
还有这样的傻瓜提这样的问题!建议歪歪孙子(YYSUN)开个
“白痴提问版”。
但我下网后,一时没有事情干,脑子里又想起这个问题,细细
琢磨,嘿,到他妈的有点意思。
这问题慢点结束,大有讨论的余地!

大家可以打开DELPHI,开新project,什么都不干,直接F9运行,
我发觉就是这样的软件也会调用WINDOWS系统目录下的9个文件(见下)!
而这些文件却是MS提供的(WINDOWS安装后就存在了)。
也就是说,BORLAND公司还是利用了系统的某些文件,如果这些文件不存在
的话,可能导致软件运行不正常或无法运行。
既然MS在98里已经放了VB的运行库文件,那么我们就可以认为VB写出的程序
要远远小于DELPHI(不要说在DELPHI里用API直接写程序,那样也会很小,但
有个屁用!)

Loading DLL COMCTL32.DLL C:/WIN/SYSTEM/
Loading DLL OLE32.DLL C:/WIN/SYSTEM/
Loading DLL OLEAUT32.DLL C:/WIN/SYSTEM/
Loading DLL WINNLS32.DLL C:/WIN/SYSTEM/
Loading DLL ADVAPI32.DLL C:/WIN/SYSTEM/
Loading DLL GDI32.DLL C:/WIN/SYSTEM/
Loading DLL USER32.DLL C:/WIN/SYSTEM/
Loading DLL KERNEL32.DLL C:/WIN/SYSTEM/
Exception Breakpoint
Loading DLL IMM32.DLL C:/WIN/SYSTEM/
Exit Process
Done

另外,听说Y9Y混到了总部。老子会去看看他。
 
to :5415
我得罪了你妈?????
 
kenmen:
5415这家伙一向如此!你大可不必理会他说话的语气,但是提到的问题倒可以好好看看。

5415:

这九个文件本来就是Windows 系统运行所必须的,这一点5415你一定比任何人都清楚!
因为在32位Windows中,“kernel32.dll”是核心的Windows API DLL,是用来处理低级
任务比如内存和任务管理的,其他的几个自己可以找本书看看去!实在不信的大牛可以
把它们删除了试试!

既然Windows必须用它了,Delphi用用他又何妨?Delphi又没说自己要脱离Windows运行,
否则就没有Kylix了。Delphi是在适应Windows,这一点它做得对!而实际上大家已经承认
VB做的程序比较小了,仅仅是聊聊原因而已。

我们使用Windows就不得不对它做出让步!
 
  废话!哪个程序能够离开那几个 .DLL?只要你在 M$ 的 Windows 平台下运行,这里边
的绝大部分 .DLL 你都得用上!甚至用到的可能更多!这一点,其实我是野虎你自己心中更
清楚!如果想完全脱离这几个玩意儿运行,嘿嘿……那你岂不是连操作系统提供的 API ……
等等接口都用不上了?那,我们还要操作系统干啥? OS 本来就介于 Application 和计算机
Hardware 之间的,它提供了这么一些接口,使得我们在写程序的时候,不必直接和 Hardware
打交道(当然,有些时候必需这样的时候,那又是一回事儿),这样为我们省却了多少麻烦
事儿?如果 M$ 的 OS 没有提供这些 API (在 DOS 下面是相应的那些 Int),市场早没它
的 OS 的份儿了!为什么?程序员、设备制造商……他们需要这些 API!没有这些东西,那
你的 OS 还有什么用?难道叫人家每一条硬件、软件指令都直接用汇编写出来?并且只能直
接调用 BIOS?显然不可能!那还不如自己写一个新的 OS 出来作开发平台!

  至于“Kenmen”提的问题的难度问题……唔……确实,是很基础的问题,但是,你、我、
大家哪个人不是从菜鸟开始的?谁一开始就是搞手?都是慢慢地成长为高手的嘛。我的意思
是,这里总不能只是高手们华山论剑的地方呀,菜鸟们如我等,一样也可以在这里请高人指
点一二的嘛,这样,才能够使大富翁这里更加红火。并且,嘿嘿……象我们这样的菜鸟,没
准儿某一天会超过你这样的高手呢……因为既然是技术论坛,大家都可以在这里尽情地讨论
技术呀。计算机技术这东西……嘿嘿……往往是后生可畏哦……嘿嘿……

  说实话,我认为,既然大家是在这里讨论技术的,虽然每个人都有自己的谈话习惯,但
是,我认为在这里如果不注意他人感受,过多地用上一些“外面”的普通的一些社会性的论
坛、聊天室等地方的不大入耳的言词,是不是对大富翁这里的整体气氛有些影响?毕竟,大
富翁是一个交流技术、心得体会的地方,她的档次就要比“外面”的“社会上”的某些论坛、
聊天室(如<a href="http://chat.yinsha.com/chat.htm">碧海银沙聊天室</a>的所谓“技术论坛”)档次要高!我想,这个,应该是我们这里
的绝大部分人所希望的!说实话,老牛我这人,平时讲话也有很多不大入耳的地方,说不定
比我是野虎你的还多还不入耳呢……嘿嘿……我想,大富翁这里象我这样的,肯定还有很多
很多,但是,为什么大家都没有无所顾忌地不加收敛地按照平时讲话的方式发言?这个,恐
怕我是野虎你也许应该想想了……每个人都有自己的一张嘴巴的!
 
我设这个论坛,是想给有兴趣的朋友一个讨论的机会,当然我也想从中学到东西。:)
至于语气嘛。。。。。
每个人都有他的说话态度,一时也很难改。。。。。
一些人整天说‘你他妈’,其实并不是骂人,只是说怪了难改而已,我爸就是了。。。。
正如:5415:所说的:‘到他妈的有点意思。这问题慢点结束,大有讨论的余地! ‘
大家说是吗?



 
<font color=red><h2>5415,我服了你!
kenmen,我更服了你!</h2></font>
 
我只是说说而已,大家如果叫我停的话,我立即分分!!!
 
后退
顶部