老虎版主帮忙看下,有那些需要修正下
Unicode 版本 Inno Setup
从 Inno Setup 5.3.0 版本开始, Inno Setup 开始有了两个不同的版本: ANSI(非 Unicode) 版本和 Unicode 版本.
Unicode Inno Setup 主要特点就是能在无视系统代码页的情况下在不同系统上正确显示不同语言, 同时也支持 Unicode 文件名.
如果您不知道您安装的是 ANSI 版本还是 Unicode 版本,您可以点击在开始菜单创建的快捷方式 "Inno Setup Compiler" 运行 Inno Setup. 如果软件标题栏显示的版本号中有 "(a)", 那么就说明您正在运行的是 ANSI(非 Unicode) 版本. 如果是 "(u)" , 那么就是 Unicode 版本.
Inno 的 ANSI 和 Unicode 版本的用法大同小异, 所有不同之处都会在帮助文档中注明. 下面是它们的主要差异:
Unicode Inno Setup 使用现有的 ANSI .isl 语言文件, 您不要擅自将它转换成 Unicode 和其它编码, 因为 Unicode Inno Setup 在编辑时会自动使用语言的语言代码页设置进行转换. 不过, 如果您使用的是一个特殊的语言代码页, 您就需要将您的 .iss 文件中现有的 [Messages] 和 [CustomMessages] 条目为转换 Unicode.
Unicode Inno Setup 也会自动转换任何语言的纯文本如 ANSI LicenseFile, InfoBeforeFile, 和 InfoAfterFile, 您不需要再去转换它们了 (这个跟 ANSI .isl 语言文件不一样, 如果您想转换也随您吧)
[Setup] 段的指示 ShowUndisplayableLanguages 将会被 Unicode Inno Setup 忽略.
Unicode Inno Setup 使用 Delphi 2009 编译, 不再使用 Delphi 2 和 3, 稍微导致文件体积增大了些. 但是源代码仍然兼容 Delphi 2 和 3, 以及一个非 Unicode 版本将保持可用.
Unicode 安装程序可以直接升级非 Unicode 安装程序安装的程序, 反之亦然.
Unicode Pascal 脚本编译注意:
Unicode 编译器遇到 'String' 类型将视为 Unicode 字符串, 'Char' 类型将视为一个 Unicode 字符. 它的 'AnsiString' 类型没有更改, 依然是一个 ANSI 字符串. 它的 'PChar' 类型已经被重命名为 'PAnsiChar'.
Unicode 编译器对 ';' 的使用更加严格, 它不再接受某些缺失 ';' 字符的情况.
Unicode 编译器使用新的 RemObjects PascalScript 版本用于支持 Unicode, 但不是支持它的输入源. 这意味着它的确可以使用 Unicode 字符串类型, 不过在脚本中任何文字的 Unicode 字符还是会被转换为 ANSI 字符. 但这不是意味着不能显示 Unicode 字符串:你可以尝试一下用 Unicode 字符编码去创建 Unicode 字符串 (如 S := #$0100 + #$0101 + 'Aa';), 或者用 LoadStringsFromFile 从一个文件中提取字符串, 或者使用一个 {cm:...} 常量.
一些支持函数原型进行了修改: 一些参数如 CreateOutputMsgMemoPage, RegQueryBinaryValue, RegWriteBinaryValue, OemToCharBuff, CharToOemBuff, LoadStringFromfile, SaveStringToFile, 和 GetMD5OfString 已经从 String 类型变成了 AnsiString 类型.
添加新的 SaveStringsToUTF8File 和 GetMD5OfUnicodeString 支持函数.
添加新的 'Int64' 类型,支持 IntToStr. 也添加了新的 StrToInt64, StrToInt64Def, 和 GetSpaceOnDisk64 支持函数.
添加新类 TStringStream.
如果您想要用 Unicode 编译器编译含有调用 ANSI Windows API 的脚本文件,您需要将其修改调用为 'W' Unicode API ,其次,您可能还需要将 'String' 或 'PChar' 替换为 'AnsiString'. 'AnsiString' 可以使您代码同时适配于 Unicode 版本和 ANSI 版本.
Unicode Inno Setup 支持 UTF-8 编码的 .iss 文件 (但不支持 UTF-16).
Unicode Inno Setup 支持 UTF-8 和 UTF-16LE 编码的 .txt 文件用于 LicenseFile, InfoBeforeFile 和 InfoAfterFile.
注意: Inno Setup 和 Wise 一样,Unicode 版本只能创建 Unicode 安装程序,非 Unicode 版本只能创建非 Unicode 安装程序. 如果您想要在同一台电脑上创建 Unicode 和非 Unicode 安装程序, 您需要安装 Inno Setup 的 ANSI 版本和 Unicode 版本到不同的地方,然后使用它们分别创建.