CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  VCL组件使用和开发

关于“安装程序“的制作

楼主zoubinbin(刚刚)2004-09-02 15:59:14 在 C++ Builder / VCL组件使用和开发 提问

我用C++   Builder自己编写了个最简单的安装程序,我的思路是这样的,我把所需的图片、可执行文件、动态连接库、等相关文件。都做成“资源文件“形式。安装时从资源文件还原各文件到所制定的目录。但是我想做成一个向别人做的那样(把相关文件加入以后,可以运行看是否有错,最后只生成一个"Setup.exe",安装时只要点击"Setup.exe"即可,生成的文件一部分进入指定文件夹,一部分到系统目录,添加删除上界面上还有此文件),我不知道怎样用C++   Builder做一个向别人这样好的安装程序,再次请教各位高手帮帮我!最好能提供共享代码作参考,谢谢!谢谢! 问题点数:0、回复次数:10Top

1 楼futulove(福途£爱)回复于 2004-09-02 16:14:59 得分 0

个人认为:这个程序的代码可不少呀Top

2 楼zoubinbin(刚刚)回复于 2004-09-02 18:00:40 得分 0

麻烦您帮我找一下!谢谢!谢谢!Top

3 楼JetKingLau(时差)(亦远亦近)(静坐常思已过 闲谈勿论人非 …………)回复于 2004-09-06 18:04:00 得分 0

在不考虑压缩的情况下,可以这样:  
   
  一、安装程序  
  1、新建一个工程,在   Form1   中放两个   TButton(名字为ButtonSetup和ButtonClose),   一个   TLabel,在   Unit1.h   文件的   public   加入一行  
   
          int   SetupFile(char   *file,   int   pos,   TLabel   *label);  
   
  Unit1.cpp   文件中,两个   Button   的   OnClick   函数及   SetupFile   函数如下:  
   
  void   __fastcall   TForm1::ButtonSetupClick(TObject   *Sender)  
  {  
          int   pos   =   27136;//本工程的   .exe   文件大小  
          SetupFile(Application->ExeName.c_str(),   pos,   Label1);  
  }  
  //---------------------------------------------------------------------------  
  int   TForm1::SetupFile(char   *file,   int   pos,   TLabel   *label)  
  {  
          int   position   =   pos;  
          int   handle   =   FileOpen(file,   fmOpenRead);  
          int   length   =   FileSeek(handle,0,2);//文件大小  
          char         fileName[255];//文件名  
          char         fileSizeBuf[12];//文件大小(字符串方式)  
          int           fileSize;//文件大小  
          char         *fileBuf;//文件内容  
   
          int           count   =   0;  
   
          int           hWrite;  
   
          while(   position   <   length   )   {//未到文件末  
                  try   {  
                          FileSeek(handle,   position,   0);//定位  
                          FileRead(handle,   fileName,   255);//读文件名   -   实际应用中应加上安装目录  
                          label->Caption     =   fileName;//显示文件名  
                          this->Update();  
                          FileRead(handle,   fileSizeBuf,   12);//读文件的大小  
                          fileSize         =   StrToInt(fileSizeBuf);//获得文件大小  
                          fileBuf           =   new   char[fileSize];//申请  
                          FileRead(handle,   fileBuf,   fileSize);//读文件内容  
   
                          //写文件  
                          hWrite             =   FileCreate(fileName);  
                          FileWrite(hWrite,   fileBuf,   fileSize);  
                          FileClose(hWrite);  
   
                          position         =   position   +   255   +   12   +   fileSize;//下一个文件位置  
                          delete             fileBuf;//释放  
                          count               ++;  
                  }  
                  catch(...)   {  
                          position         =   length;  
                  }  
          }  
          FileClose(handle);  
          return(count);  
  }  
  //---------------------------------------------------------------------------  
  void   __fastcall   TForm1::ButtonCloseClick(TObject   *Sender)  
  {  
          Close();  
  }  
  //---------------------------------------------------------------------------  
   
  2、将该工程保存为   Setup.bpr,   Build   该工程,然后执行菜单项   Project   |   Information   of   Setup,并根据   File   Size   的值修改   Button1Click   函数中的   pos   值。  
   
  实际上,这个安装程序是从程序可执行文件的   pos   值开始,依次读取文件名、文件大小、文件内容,并写到该文件。  
   
   
  二、制作安装程  
  FileCreate   一个文件,将上述的   Setup.exe   文件写入,然后根据要安装的文件列表,依次FileWrite写入它们的安装后的文件名(字符串,255字节)、文件大小(字符串,12字节)、文件内容即可。  
  这部份程序偶没有时间写了,你自己试试吧。  
  Top

4 楼zsqat(强子)回复于 2004-09-08 09:38:08 得分 0

谢谢!这个方法我做过,能行的!我原来做的是把许多文件合并成一个文件,安装实在吧他们分开装载指定的文件夹理。  
  但我现在的问题是要把他做成像Office(等)其他安装程序那样,安装时,一部分程序到指定目录,一部分到Windows系统,并且控制面板“添加删除“里面还有安装的程序,即就是说怎用C++   Builder   做一个像“网上下载下来的安装程序一样(如:肥猫安装向导、小颖安装向导)“。Top

5 楼JetKingLau(时差)(亦远亦近)(静坐常思已过 闲谈勿论人非 …………)回复于 2004-09-08 11:21:32 得分 0

WinAPI   有   Setup   开头的函数,就是制作安装程序的,慢慢研究去吧……  
   
  同时,还要研究   .INF   文件格式。  
  Top

6 楼dgyanyong(幸运飞龙)回复于 2004-09-08 22:07:52 得分 0

用VS.NET   2003做安装程序也十分方便  
  新建项目-   选择   安装和部署项目-   选择   安装项目  
  无需学习,直接依照步骤来   2分钟搞定   呵呵Top

7 楼zoubinbin(刚刚)回复于 2004-10-20 11:53:05 得分 0

我要的是怎样用c++   builder制作一个安装程序,而不是直接用别人做好的安装向导  
  Top

8 楼constantine(飘遥的安吉儿)回复于 2004-10-20 12:29:45 得分 0

chinabcb好像有一个Top

9 楼ydslyangdong(爱的一无事处)回复于 2004-10-20 21:03:35 得分 0

用INSTALL安装软件,只要弄好路径就会自动安装好的Top

10 楼zoubinbin(刚刚)回复于 2004-10-28 09:11:38 得分 0

我要的是用C++   Builder自己做一个安装向导软件  
  Top

相关问题

  • 安装程序的制作
  • VC制作安装程序
  • 制作安装程序?
  • 安装程序制作
  • Builder 安装程序制作
  • 安装程序的制作问题
  • 制作VB安装程序(100分)
  • 怎样制作DELPHI5安装程序?
  • 制作安装程序,急急急!
  • 如何制作delphi程序安装盘 ?

关键词

  • c++ builder
  • 安装
  • 文件
  • 函数
  • 向导
  • 文件名
  • 制作
  • 执行
  • 项目
  • 内容

得分解答快速导航

  • 帖主:zoubinbin

相关链接

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

广告也精彩

反馈

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