CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

关于生成exe文件的问题

楼主rocknet(小川)2000-10-21 13:25:00 在 C++ Builder / 基础类 提问

用C++builder写的程序,编译后有几十K,但直接拷到别的机子上不能运行,说有DLL找不到,后来在工程选项里修改了几个选项后,可以直接在别的机子上运行了,但是文件好像是太大了一点,600多K,比用VC编的大多了.请问怎么可以编译成做好的大小呢(可以直接运行的)?另外,用C++builder带的install   shell制作的安装程序,是不是自动做成最好的方式了呢(所带的DLL为最少的),还是要自己设置,怎么设置呢? 问题点数:50、回复次数:12Top

1 楼Phoenix2000(Phoenix2000)回复于 2000-10-21 17:09:00 得分 20

        C++Builder   在编译应用程序时可选择带   RTL   运行时动态链接库和   BPL   包的方式。这样编译出来的程序虽然体积很小但要附带以上的多个   DLL   和   BPL   文件才能运行。如果不选择上述方式,则所有的运行期代码都连接到可执行文件中,虽然体积会增大一点,但不需要任何附加的   C++Builder   运行时   DLL   和   BPL   文件了。有一点要弄清楚的是,现在很多人都认为用   VC++   编写的程序很小,其实   VC   编写的程序同样要附带很多的运行时动态连接库,比如   MFC42.DLL   等等(不止这一个文件)!只不过微软将这些文件随   Windows   一起安装罢了。这是占了天时地利,其实是不公平的。再有,不同的   VC   版本编写的程序有可能依赖不同版本的   MFC42.DLL   等等。你试过用   VC   编程序时选择以静态   MFC   库连接的方式了吗?那样编译出来的程序是独立的,不依赖什么   MFC42.DLL   之类的劳什子了,但它的体积是具有同等功能的采用   C++Builder   编译的应用程序的   4   到   6   倍大!!!我不是危言耸听,而是亲身经历过的!如果不使用类库,纯粹使用   Win32   SDK   的话,用   C++Builder   编写的程序还是要比用   VC   编写的程序要来的小,但速度不相上下。孰是孰非应该一目了然了吧。  
          用   C++Builder   编译的程序(EXE   和   DLL)可以用   UPX   这个压缩工具进行压缩处理,可将原来的程序文件体积压缩到原来的   35%   到   40%,并且完全可以正常使用。Top

2 楼Nicrosoft(奈软)回复于 2000-10-21 22:42:00 得分 10

Phoenix2000说的没错,我就喜欢bcb和delphi编译的完全独立的exe,再用aspack压缩一下,还是可以正常运行。Top

3 楼wxz(行舟)回复于 2000-10-22 01:34:00 得分 0

我最喜欢aspack,一般可压缩20-30%Top

4 楼rocknet(小川)回复于 2000-10-22 11:20:00 得分 0

但是。。怎样知道需要哪些dll呢,还是不必要知道。Top

5 楼Raptor(猛禽)回复于 2000-10-22 13:42:00 得分 10

如果链进去就不必知道了,你想知道的话可以用tdump看看Top

6 楼rocknet(小川)回复于 2000-11-03 15:41:00 得分 0

以前我和别人做过一个数据库的项目,我用VB,一个用VC,另外一个用DELPHI(恰好所用的开发工具都不一样),由于DLL的兼容问题,所以模块之间用EXE文件连接(没办法,我用VB写成的active   dll在DELPHI老报错).我用VB生成的安装文件有29M,DELPHI那个有8M(包括BDE),VC那个只有2M多一点(可以直接运行的).  
  我想BC++和DELPHI可能差不多吧.  
  另外,我的机子怎么没有mfc42.dll???Top

7 楼easypaper()回复于 2000-11-03 20:22:00 得分 0

你可以使用BCB自带的安装程序,不过我比较喜欢用Install   Shield   Pro,因为可以控制的选项更多,而且,用InstallShieldPro,你自己可以了解你的工程实际需要那些动态库、文件,不需要那些。  
  我曾经用过4.0自带的ISE制作安装程序,带BDE的时候,必须选择全部安装,否则就会出错。后来自己用别的工具做安装程序,自己指定文件、写注册表,了解了很多东西,安装文件也小了好多。  
  另外,自带的ISE,好像没有中文语言包。用专业版就好多了。Top

8 楼easypaper()回复于 2000-11-03 20:23:00 得分 10

你可以使用BCB自带的安装程序,不过我比较喜欢用Install   Shield   Pro,因为可以控制的选项更多,而且,用InstallShieldPro,你自己可以了解你的工程实际需要那些动态库、文件,不需要那些。  
  我曾经用过4.0自带的ISE制作安装程序,带BDE的时候,必须选择全部安装,否则就会出错。后来自己用别的工具做安装程序,自己指定文件、写注册表,了解了很多东西,安装文件也小了好多。  
  另外,自带的ISE,好像没有中文语言包。用专业版就好多了。  
  另外,VC程序的Release版本,好像比BCB的程序要小很多。Top

9 楼Lionheart(狮心)回复于 2000-11-03 21:51:00 得分 0

一般BORLAND的不是DLL,而是BPL。找到所有的BPL,打包搞定。不过,只有可执行部分有十几二十几才上算。Top

10 楼Maxwell(不可知)回复于 2000-11-07 08:50:00 得分 0

        VC的小一点是正常的,如果你不想用VCL用OWL那就和VC的大小差不多了,VC的MFC和VCL怎么能比.VC仗着Windows感觉要小一些.  
  Top

11 楼BigFoolCat(大笨猫)回复于 2001-01-25 05:51:00 得分 0

如果要程序小,一个办法就是直接使用   API  
  另外就是想VB那么使用系统现有的什么DLL和OCX资源,  
  说句实话我及其讨厌VB,程序到编起来很快,  
  兼容性极差,换个平台就……  
  我经常用Win2K、Win98什么的就发现平台问题实在……  
  不过我发现BCB编译的东西基本不出现兼容性问题。  
  还是想他们说的   BCB完全编译(去掉动态联接和BPL支持)  
            AsPack压缩  
  我的某豆奶公司的管理软件(Quick   Report都有)才500K左右  
  真爽!!!  
   
  而且我建议编程平台用Win2k,真稳定!!!Top

相关问题

  • 用vfp生成.exe文件
  • :(,怎样生成.exe文件
  • Jb7 生成exe文件
  • 如何生成exe文件
  • 生成EXE文件问题????
  • 生成不了exe文件:(
  • 如何生成*.exe文件
  • PB 6中,如何生成EXE文件?
  • 用QB怎么生成EXE文件?
  • 生成.exe文件,要注意哪些?

关键词

  • c++builder
  • win2k
  • 文件
  • 安装
  • 编译
  • bcb
  • vc
  • 选项
  • 连接
  • 平台

得分解答快速导航

  • 帖主:rocknet
  • Phoenix2000
  • Nicrosoft
  • Raptor
  • easypaper

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo