Inno Setup 2.0.19
Copyright (C) 1998-2001 Jordan Russell. All rights reserved.
Portions by Martijn Laan.
For conditions of distribution and use, see LICENSE.TXT.
Source code README
1. Intro
========
First I would like to say that the source code is provided for educational
purposes only. Because of its complexity, you probably will not be able to
make any serious modificiations to it. Though I've tried to simplify and
comment the code as much as possible, on lot of it you'll just have to
figure out what it does because I don't have time to thoroughly comment
everything.
I compile all of Inno Setup's projects with Delphi 2.0 (the original 2.0;
I never got the 2.01 update), with the exception of Compil32, which is
compiled with Delphi 3.02 (for the better foreign character set support).
Although the projects are compilable in later Delphi versions also, I still
use Delphi 2 & 3 because of the significantly smaller code size footprint of
their VCLs compared to the later versions. You cannot compile the projects
under Delphi 1.x; 16-bit support has been dropped beginning with Inno Setup
1.3.
If you intend to view or modify Inno Setup's forms, you must install 7
components that Inno Setup uses. The components are named BeveledLabel,
GroupRadioButton, NewBevel, NewCheckListBox, NewGauge, NewFCtrl, and
RichEditViewer, and are located in the Components directory. If you only
want to edit code, then you may skip installation of the components, and
choose "Cancel" when Delphi tells you a class can't be found.
If you want to compile the CompForm unit, you must also have the SynEdit
component suite installed. To download SynEdit, visit:
http://synedit.sourceforge.net/
At the time of this writing, I am using the latest source from the SynEdit
CVS repository.
2. Overview
===========
Inno Setup consists of seven projects:
Compil32.dpr - This is the GUI front-end for the compiler. Compil32 does not
do the actual compilation itself; it relegates it to ISCmplr.dll. If the
ISCmplr project is changed, you normally don't need to recompile Compil32
since it's essentially a text editor, and is not affected by internal
changes to the compiler.
Note: This is the only project that I compile under Delphi 3 (3.02 to be
exact). The rest of the projects are compiled under Delphi 2.0.
ISCmplr.dpr - This is a DLL which is loaded by Compil32 to compile scripts.
The actual compiler code is in Compile.pas. See CompInt.pas for the various
structures and function declarations used to interface to the DLL.
SetupClassic.dpr - This is the actual "classic" style "Setup" program. It
displays the wizard, and performs all installation-related tasks.
SetupLdr.dpr - This is the "setup loader." It extracts a compressed Setup
program into the user's TEMP directory and runs it from there. It also
displays the "This will install..." message box.
SetupModern.dpr - This is the actual "modern" style "Setup" program. Like
SetupClassic.dpr it displays the wizard, and performs all
installation-related tasks.
Uninst.dpr - This is the uninstaller. Keep in mind that installations can
append to other installations' uninstall logs, so you should not make
changes to the internal file formats.
RegSvr.dpr - This program is compiled into installations which use the
"restartreplace" flag in the [Files] section along with "regserver" or
"regtypelib". It is used to register DLL/OCXes and type libraries on the
next reboot. This project rarely, if ever, needs to be recompiled.
How do the projects link together?
- ISCmplr, SetupClassic, SetupLdr, SetupModern, and Uninst share the unit
Struct.pas. This unit contains various data structures and constants
shared by the projects. If Struct.pas is changed, you usually will need
to recompile ISCmplr, SetupClassic, SetupLdr, and SetupModern so that
everything is in synch. Uninst may also need to be recompiled in some
cases.
- SetupClassic, SetupModern, and Uninst share the unit Undo.pas. Undo
performs all uninstallation tasks. If Undo is changed, normally
SetupClassic, SetupModern, and Uninst all need to be recompiled.
- There are more units which are shared between projects. Search the 'uses'
clauses of the projects and units if you aren't sure if a project uses a
particular unit.
3. Delphi 2.0x users ONLY
=========================
Before you can successfully compile the projects in Delphi 2.0, you must
do two things:
- Install the latest version of SYSTEM.DCU if you haven't already done so.
It can be downloaded from Inprise's site at:
http://www.borland.com/devsupport/delphi/downloads/index.html
Look for "System.zip" in the "Delphi 2 Items" section.
If you do not do this, you will probably get an "I/O Error" message
when trying to run the projects.
- If the files SHLOBJ.DCU and REGSTR.DCU are missing from your Delphi\Lib
directory, download them here:
http://www.jrsoftware.org/files/delphi200units.zip
4. Source code tips
===================
- If you modify one of these project's source code: SetupClassic,
SetupLdr, SetupModern, RegSvr, or Uninst, and want to be able to compile
your installations with the new code, you'll need to copy the new EXE
file(s) to the Setup Compiler directory under the extension .E32.
- When debugging the SETUP project you should set UseSetupLdr=0 in your
script, and copy the resulting SETUP.0, SETUP-1.BIN, and SETUP.MSG files to
the source code directory. This way you can simulate an actual installation
while running under the Delphi debugger.
- When I release new versions, you can tell which source code files have
changed by checking their date/time stamps. You can then use a file
comparison utility such as DOS's "FC" or Microsoft's WinDiff to show the
differences between an old version of a file and a new version.
- All of the forms in the SetupClassic and SetupModern projects, with the
exception of Main.dfm, have Scaled set to False. This is because they
dynamically scale themselves at run-time by calling a function named
SetFormFont.
- A note for those curious: The Setup Compiler creates single EXE Setups by
first creating the SETUP.EXE as usual, then concatenating the SETUP.0 and
SETUP-1.BIN to the end of the SETUP.EXE, and finally modifying an internal
data block in SETUP.EXE so it knows it's in "single EXE" form.
- Starting with the 32-bit version of Inno Setup 1.12.7, I am using my own
"StripReloc" utility to decrease the size of COMPIL32.EXE and .E32 files.
To download StripReloc, go to:
http://www.jrsoftware.org/striprlc.htm
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
著名安装工具-innosetup源代码 (125个子文件)
WizModernImage2.bmp 26KB
WizModernImage.bmp 26KB
WizClassicImage.bmp 7KB
WizModernSmallImage.bmp 2KB
WizModernSmallImage2.bmp 2KB
CompWizard.dfm 37KB
CompForm.dfm 10KB
WizardModern.dfm 6KB
WizardClassic.dfm 6KB
CompStartup.dfm 2KB
CompOptions.dfm 2KB
CompWizardFile.dfm 2KB
NewDisk.dfm 951B
SelDir.dfm 831B
Main.dfm 327B
isbzip.dll 36KB
isbunzip.dll 32KB
ISCC.dof 1KB
Compil32.dof 1KB
Uninst.dof 1KB
ISCmplr.dof 1KB
SetupClassic.dof 564B
SetupModern.dof 550B
RegSvr.dof 491B
SetupLdr.dof 491B
Uninst.dpr 15KB
SetupLdr.dpr 8KB
RegSvr.dpr 4KB
Compil32.dpr 4KB
ISCC.dpr 3KB
SetupClassic.dpr 2KB
SetupModern.dpr 2KB
ISCmplr.dpr 582B
MyProg.exe 4KB
UninstProgressDlg.h 898B
UninstSharedFileDlg.h 834B
MyProg.hlp 6KB
whatsnew.htm 19KB
Wizard.inc 63KB
Version.inc 620B
Default.isl 14KB
setup.iss 6KB
Sample3.iss 2KB
Sample2.iss 856B
Sample1.iss 689B
XPTheme.manifest 649B
trees.obj 14KB
deflate.obj 10KB
inftrees.obj 8KB
infblock.obj 7KB
infcodes.obj 4KB
inflate.obj 4KB
inffast.obj 2KB
infutil.obj 1KB
adler32.obj 797B
Compile.pas 155KB
Install.pas 80KB
Main.pas 72KB
Undo.pas 38KB
zlib.pas 36KB
CompForm.pas 35KB
NewFCtrl.pas 34KB
CmnFunc2.pas 27KB
CompWizard.pas 24KB
InstFunc.pas 20KB
CompMsgs.pas 13KB
NewCheckListBox.pas 13KB
Struct.pas 10KB
Msgs.pas 9KB
bzlib.pas 8KB
UninstProgressDlg.pas 8KB
RichEditViewer.pas 7KB
MBCSUtil.pas 6KB
CmnFunc.pas 6KB
InstFnc2.pas 6KB
GroupRadioButton.pas 5KB
WizardModern.pas 5KB
WizardClassic.pas 5KB
MsgIDs.pas 5KB
NewGauge.pas 5KB
CompWizardFile.pas 5KB
CompInt.pas 5KB
WinDlgs.pas 5KB
DDEInt.pas 4KB
NewBevel.pas 3KB
CompOptions.pas 3KB
CompStartup.pas 3KB
BeveledLabel.pas 3KB
UninstSharedFileDlg.pas 3KB
NewDisk.pas 3KB
SelDir.pas 3KB
SetupEnt.pas 2KB
ChildFrm.pas 882B
XPTheme.pas 446B
NewFCtrl.r32 4KB
UninstProgressDlg.rc 3KB
UninstSharedFileDlg.rc 3KB
_shfoldr.rc 279B
XPTheme.rc 80B
_shfoldr.res 23KB
共 125 条
- 1
- 2
资源评论
csdn8900
- 粉丝: 10
- 资源: 28
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- F103-霸道开发板2.8寸电阻触摸屏例程.rar
- Google(高德)地图瓦片python代码下载
- Python实现输出杨辉三角形
- polsarpro官方教程、操作说明 PolSARpro v5.0 Software Training Course
- STM32 TouchGFX的使用二图片显示
- buildx镜像文件,也可以通过网上其他方式获取
- 【中级软件设计师】上午题12-软件工程(2):单元测试、黑盒测试、白盒测试、软件运行与维护
- 免费计算机毕业设计-医院住院管理系统的设计与实现(包含代码+论文)
- tt100k数据转换yolo格式
- 免费计算机毕业设计-学生在线网络考试系统的设计与实现(包含论文+源码)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功