gpt4 book ai didi

windows-xp - inno setup.exe 在 Windows XP 上因浮点除以零而失败

转载 作者:行者123 更新时间:2023-12-02 23:59:29 24 4
gpt4 key购买 nike

我已经设置了一个 inno 安装脚本来安装我的应用程序。生成的 setup.exe 将在 Windows Vista/7 上正确安装,但在 Windows XP 上失败并出现被零除错误。 inno 示例脚本可以在 windows xp 上运行,所以它一定是我正在做的事情。谁能看出我做错了什么吗?

; Script generated by the Inno Setup Script Wizard.
#define app_src_path "..\MyApp"
#define app_exe_path "..\bin"

#define file_ver GetFileVersion(app_exe_path + "\win32\MyApp.exe")
#define app_ver Delete(file_ver, 6, 2)

[Setup]
AppId={{BBB40316-958C-446B-A08D-311273214AA6}
AppName=MyApp
AppVersion={#app_ver}
UninstallDisplayName=MyApp
AppPublisher=My Company US
DefaultDirName={pf}\My Company\MyApp
DisableDirPage=yes
DefaultGroupName=My Company
DisableProgramGroupPage=yes
#emit 'OutputBaseFilename="MyApp-Setup-' + app_ver + '"'
#emit 'SetupIconFile="' + app_src_path + '\rc\MyAppIcon.ico"'
Compression=lzma
SolidCompression=yes
ArchitecturesInstallIn64BitMode=x64
WizardImageFile=ZDS.bmp
WizardSmallImageFile=ZDSsmall.bmp

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[InstallDelete]
Type: filesandordirs; Name: "{app}\MyApp";

[Files]
; x64 files
Source: "{#app_exe_path}\x64\MyApp.exe"; DestDir: "{app}"; Flags: ignoreversion; Check: Is64BitInstallMode

; win32 files
Source: "{#app_exe_path}\win32\MyApp.exe"; DestDir: "{app}"; Flags: ignoreversion; Check: not Is64BitInstallMode

; platform independent
Source: "{#app_src_path}\rc\pic1-24.png"; DestDir: "{app}\rc"; Flags: ignoreversion nocompression
Source: "{#app_src_path}\rc\pic2-24.png"; DestDir: "{app}\rc"; Flags: ignoreversion nocompression
Source: "{#app_src_path}\rc\pic3-24.png"; DestDir: "{app}\rc"; Flags: ignoreversion nocompression

[Icons]
Name: "{group}\MyApp"; Filename: "{app}\MyApp.exe"
Name: "{commondesktop}\MyApp"; Filename: "{app}\MyApp.exe"; Tasks: desktopicon
Name: "{group}\{cm:UninstallProgram,MyApp}"; Filename: "{uninstallexe}"

[Run]
Filename: "{app}\MyApp.exe"; Description: "{cm:LaunchProgram,MyApp}"; Flags: nowait postinstall skipifsilent

编辑:这是/LOG 的输出

2012-07-14 10:07:50.855   Log opened. (Time zone: UTC-04:00)
2012-07-14 10:07:50.855 Setup version: Inno Setup version 5.5.1 (u)
2012-07-14 10:07:50.855 Original Setup EXE: E:\MyApp-Setup-0.0.0.exe
2012-07-14 10:07:50.855 Setup command line: /SL5="$801DE,623918,137216,E:\MyApp-Setup-0.0.0.exe" /LOG
2012-07-14 10:07:50.855 Windows version: 5.1.2600 SP3 (NT platform: Yes)
2012-07-14 10:07:50.855 64-bit Windows: No
2012-07-14 10:07:50.870 Processor architecture: x86
2012-07-14 10:07:50.870 User privileges: Administrative
2012-07-14 10:07:50.885 Exception message:
2012-07-14 10:07:50.885 Message box (OK):
Floating point division by zero.
2012-07-14 10:07:51.654 User chose OK.
2012-07-14 10:07:51.654 Deinitializing Setup.
2012-07-14 10:07:51.654 Log closed.

我没有 [code] 部分,因此我很困惑 MessageBox (OK) 消息的来源。

最佳答案

对 Dan 答案的补充,但不适合评论......

对于向导图像文件,我使用 GIMP 2.8 作为图像编辑器尝试了几乎所有可能的颜色深度和操作系统(Windows 7 和 Windows XP)排列。我得出以下结果:

使用什么颜色深度并不重要; 8 位、16 位、24 位或 32 位。仔细想想,这是有道理的,因为 Windows XP 确实支持桌面上的 32 位图标。 请参阅下面的编辑

Dan 在谈到位图中“损坏”的 header 时一语中的。事实证明它并没有腐败。默认情况下,GIMP 2.8 将“色彩空间信息”保存在位图文件的 header 中。 Innosetup 或 Windows XP(我不确定是哪一个)不知道如何正确解释此信息。

关键是要确保此色彩空间信息保存在位图文件中。从 GIMP 2.8 导出位图时,您可以选择选中“不写入色彩空间信息”选项,如下图所示。

enter image description here

编辑 2014 年 3 月 20 日

一些更新信息:在 InnoSetup 版本 5.5.4(在 Windows 7 64 位操作系统上运行和安装)中,对 32 位图像使用上述方法会出现 位图图像无效 错误当编译的安装文件运行时。

更改为 24 位图像,但仍然没有色彩空间信息,问题得到解决。

关于windows-xp - inno setup.exe 在 Windows XP 上因浮点除以零而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11473521/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com