我自己用XE6编译了inno-setup。(我知道,文档建议使用较旧的delphi版本,但我只有新的IDE)
我想使用pascal脚本来自定义安装。但即使我添加了一个最简单的代码部分,创建的安装崩溃。
[Code]
function InitializeSetup(): Boolean;
begin
end; 安装时创建的setup.exe失败:
[22:10:29.945] *** Setup started
[22:10:36.182] Setup version: Inno Setup version 5.5.4 (u)
[22:10:36.186] Original Setup EXE: D:\Classics\Save\Installer\Win_Platform\Inno Setup\test\Output\setup.exe
[22:10:36.190] Setup command line: /SL5="$911152,176640,176640,D:\Classics\Save\Installer\Win_Platform\Inno Setup\test\Output\setup.exe" /SPAWNWND=$7B05B8 /NOTIFYWND=$1150B10 /DEBUGWND=$74002E
[22:10:36.200] Windows version: 6.2.9200 (NT platform: Yes)
[22:10:36.203] 64-bit Windows: Yes
[22:10:36.209] Processor architecture: x64
[22:10:36.212] User privileges: Administrative
[22:10:37.660] 64-bit install mode: No
[22:10:37.674] Created temporary directory: C:\Users\CAOSHU~1\AppData\Local\Temp\is-5AOTJ.tmp
[22:10:37.717] InitializeSetup raised an exception (fatal).
[22:10:37.725] Exception message:
[22:10:37.734] Message box (OK):
Access violation at address 006043C0 in module 'setup.tmp'. Read of address 00000014.
[22:11:03.501] User chose OK.
[22:11:03.515] Deinitializing Setup.
[22:11:04.424] *** Setup exit code: 1也许我在has setup中编译的方式有一些问题。我不需要使用XE6?但是如何调试并找出问题所在呢?
并不是某些代码在运行时会崩溃。它是由inno setup创建的setup.exe。
发布于 2014-11-24 01:27:50
InitializeSetup()返回的值未定义。
function InitializeSetup(): Boolean;
begin
result := true;
end;正因为如此,你得到了一种未定义的行为。如果大多数时候结果是假的( RAX == 0的最后8位),情况并不总是这样,你会遇到一个严重的“难以理解”的问题,特别是当它无缘无故地工作的时候。
https://stackoverflow.com/questions/27089898
复制相似问题