Inno Setup
Copyright (C) 1997-2007 Jordan Russell. All rights reserved.
Portions Copyright (C) 2000-2007 Martijn Laan. All rights reserved.
For conditions of distribution and use, see LICENSE.TXT.
Source code README
1. Prerequisites
================
To compile Inno Setup, you need:
- Borland Delphi
We compile all of Inno Setup's projects under Delphi 2.01, with the
exception of Compil32, which is compiled under Delphi 3.02 (for the better
Far East character set support). These older versions of Delphi are used
because their VCLs have a significantly smaller code size footprint than
the later versions.
If you do not have access to these old versions of Delphi, you should be
able to compile the projects on later versions, however complete
compatibility is NOT guaranteed. We try to make Inno Setup compilable on
the later versions when possible, but do not have the resources to test
every change on every Delphi version.
- RemObjects Pascal Script: http://www.remobjects.com/?ps
UPDATE: The ROPS Subversion server suffered a disk crash, so ignore the
following paragraph for now, and grab the revision 1045a sources here:
http://files.jrsoftware.org/is/rops/rops-svn-rev-1045a.zip
(md5sum: d9a646601ea9d7151b43b27cbf1c8ac5)
You'll need to obtain the exact revision specified in ROPS-revision.txt
from the ROPS Subversion repository. For example, if the revision number
were 1000:
> cd is\Components
> svn checkout -r 1000 svn://svn.remobjects.com/ps/trunk ps
If you don't have the Subversion client (svn), get it from:
http://subversion.tigris.org/
- SynEdit: http://synedit.sourceforge.net/
Version 1.1 is required. Older/newer releases likely are not compatible.
This version appears to have been removed from the SynEdit site, but
you can still get it here:
http://files.jrsoftware.org/is/synedit/SynEdit1.1.zip
(md5sum: 66dd0b4b71423ffd2db06facbf3cb68c)
After downloading SynEdit, you will need to apply the changes in
SynEdit-1.1-patch.txt.
2. 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
(md5sum: 94530f3c400c728df897d7d740889487)
3. Component Installation
=========================
If you intend to view or modify the Setup project's forms, you must install
the following components, which can be found in the Components directory.
- BitmapImage
- FolderTreeView
- NewCheckListBox
- NewNotebook
- NewProgressBar
- NewStaticText
- PasswordEdit
- RichEditViewer
If you intend to view or modify the Compil32 project's forms, you must
additionally install the following components. (Like the Compil32 project
itself, these require Delphi 3 or later.)
- DropListBox
- NewTabSet
- SynHighlighterISXCode
If you only want to edit code, then you may skip installation of the
components, and choose "Cancel" if the Delphi IDE tells you a class can't
be found.
4. Overview
===========
Inno Setup consists of five 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.01.
ISCC.dpr - This is the command-line front-end to the compiler. Like
Compil32, it depends on ISCmplr.dll to do the actual compiling.
ISCmplr.dpr - This is a DLL which is loaded by Compil32 and ISCC 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.
Setup.dpr - This is the actual "Setup" program. It displays the wizard, and
performs all (un)installation-related tasks.
SetupLdr.dpr - This is the "setup loader." It self-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.
How do the projects link together?
- ISCmplr, Setup, and SetupLdr 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, Setup,
and SetupLdr so that everything is in synch.
- 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.
5. Source code tips
===================
- If you modify the Setup or SetupLdr projects 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=no in your
script, and copy the resulting setup-*.bin files to the source code
directory. This way you can simulate an actual installation while running
under the Delphi debugger.
- All of the forms in the Setup project, 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.
- When a Cardinal-type variable is compared against a constant expression,
why is a Cardinal cast sometimes used around the constant expression?
For example:
var
X: Cardinal;
begin
if X > Cardinal(1) then
...
The cast is needed to to work around a bug in Delphi 2 and 3 compilers:
without it, a *signed* comparison is done.
- 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 the .EXE and .E32 files.
To download StripReloc, go to:
http://www.jrsoftware.org/striprlc.php
没有合适的资源?快使用搜索试试~ 我知道了~
Inno Setup(Inno安装工具源码) v5.2.2
共248个文件
pas:82个
txt:31个
isl:20个
4星 · 超过85%的资源 需积分: 10 38 下载量 83 浏览量
2007-10-27
19:47:41
上传
评论
收藏 602KB RAR 举报
温馨提示
InnoSetup是一个免费的安装制作软件,小巧、简便、精美是其最大特点,支持pascal脚本,能快速制作出标准Windows风格的安装界面,足以完成一般安装任务。该软件用Delphi写成,其官方网站同时也提供源程序免费下载。它虽不能与Installshield这类恐龙级的安装制作软件相比,但也当之无愧算是后起之秀。这个压缩包只有源代码。
资源推荐
资源详情
资源评论
收起资源包目录
Inno Setup(Inno安装工具源码) v5.2.2 (248个子文件)
compile.bat 3KB
WizModernImage-IS.bmp 51KB
WizModernImage.bmp 26KB
WizModernSmallImage-IS.bmp 4KB
WizModernSmallImage.bmp 2KB
LzmaDecodeSize.c 19KB
Helper.c 13KB
RegDLL.c 5KB
LzmaDecodeInno.c 1KB
MyProg.c 655B
MyDll.c 155B
MyProg.chm 12KB
styles.css 3KB
.cvsignore 48B
.cvsignore 42B
.cvsignore 28B
.cvsignore 7B
MyDll.def 20B
CompWizard.dfm 39KB
CompForm.dfm 27KB
Wizard.dfm 8KB
CompStartup.dfm 3KB
CompOptions.dfm 3KB
CompWizardFile.dfm 2KB
UninstProgressForm.dfm 1KB
UninstSharedFileForm.dfm 1KB
NewDisk.dfm 943B
SelFolderForm.dfm 818B
SelLangForm.dfm 788B
Main.dfm 312B
islzma.dll 81KB
isbzip.dll 36KB
isbunzip.dll 32KB
iszlib.dll 18KB
isunzlib.dll 13KB
MyDll.dll 8KB
ISCC.dof 1KB
Compil32.dof 1KB
ISCmplr.dof 1KB
Setup.dof 1KB
SetupLdr.dof 491B
SetupLdr.dpr 16KB
Setup.dpr 9KB
ISCC.dpr 7KB
Compil32.dpr 4KB
ISCmplr.dpr 1KB
MyDll.dpr 224B
MyDll.dsp 3KB
MyProg-IA64.exe 6KB
MyProg-x64.exe 5KB
MyProg.exe 4KB
innosetup.gif 19KB
LzmaDecode.h 3KB
LzmaTypes.h 894B
resource.h 449B
hh_contents.hhc 196B
hh_index.hhk 192B
hh_project.hhp 391B
whatsnew.htm 64KB
topic_myprog.htm 573B
MyProg.ico 766B
Version.inc 3KB
French.isl 20KB
BrazilianPortuguese.isl 19KB
Czech.isl 19KB
German.isl 19KB
Hungarian.isl 18KB
Spanish.isl 18KB
Italian.isl 18KB
Basque.isl 18KB
Slovak.isl 18KB
Polish.isl 18KB
Portuguese.isl 18KB
Catalan.isl 17KB
Dutch.isl 17KB
Danish.isl 17KB
Russian.isl 17KB
Norwegian.isl 17KB
Default.isl 17KB
Slovenian.isl 16KB
Finnish.isl 16KB
Hebrew.isl 14KB
CodeClasses.iss 11KB
setup.iss 10KB
CodeAutomation.iss 8KB
CodeDlg.iss 7KB
CodeExample1.iss 5KB
Languages.iss 2KB
CodeDll.iss 2KB
64BitThreeArch.iss 2KB
UninstallCodeExample1.iss 1KB
Example3.iss 1KB
64BitTwoArch.iss 1KB
ISPPExample1.iss 1KB
Components.iss 1KB
UninstallCodeDll.iss 1KB
64Bit.iss 1KB
Example2.iss 860B
Example1.iss 616B
XPTheme.manifest 1KB
共 248 条
- 1
- 2
- 3
资源评论
- xiaojian3652013-03-14一般,一般,一般般
- dahui19982012-06-30不好用,少了几个文件,还不如直接到inno setup 官方网站下载源码
- ppconan2013-12-07下下来不知道怎么用,我还得多学点inno
fywsky
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- libjpeg 编译所需的 Win32.mak vs编译libjpeg
- 自动驾驶-状态估计和定位-粒子滤波实现和源码.pdf
- 数据可视化-智慧物流服务中心大屏页面.zip
- yolov5,SSD 可能使用到的一些代码
- bbbbbbbbbbbbbbbbbb
- 安卓逆向学习笔记之Frida Stalker 还原OLLVM AES.docx
- 安卓逆向学习笔记之unicorn来trace还原OLLVM Base64.docx
- 基于jquery的自定义表格组件实现
- Nessus最新20240426离线安装插件all-2.0.tar.gz
- 最新版本私钥助记词碰撞器大富豪使用python进行制作通过接口的方式进行验证支持多币种多链多网络一分钟万次验证高出货率
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功