我们正在使用 Microsoft 的 HTML Help Workshop(特别是 hhc.exe)来汇编包含 HTML 格式文档的 CHM 文件。官方对 CHM 文件的大小没有限制,但随着我们的文档集规模不断扩大,我们遇到的构建失败越来越多。错误消息并不好,但似乎内存不足;然而,增加内存并没有带来任何变化。(最近几周,文档集的规模增加了约 25%;我们尝试将内存增加一倍。)
我们的 CHM 文件是 12MB,看起来并不大。我们可以调整一下吗,或者我们是否已经达到了此工具可以处理的非官方限制(至少在 32 位机器上)?
编辑后添加:
我们收到的错误是一个弹出窗口,其中包含以下文本:
hhc.exe-应用程序错误 [X] “0x453217d8”处的指令引用了“0x########”处的内存。 内存无法被“读取”。 单击“确定”终止该程序。 单击“取消”以调试程序。 [确定] [取消]
我们从自动构建中运行此程序,该程序调用 Ant 目标,该目标使用 <exec> 来调用 hhc.exe。构建计算机运行的是 Windows Server 2003,内存为 4GB。
一个元问题:我最初关于文件大小的问题已经得到解答;我应该如何处理这些评论带来的后续问题?重新提出问题?接受原始问题的答案?从我的回复中你可以看出我是新来的。
答案1
机器的“位数”与此过程无关。位数是指处理器可以寻址的内存量。32 位机器可以寻址 4GB 内存,远远超过您的需要。而且,如果您需要更多内存,机器只会对内存进行分页。这会减慢进程速度,但不会阻止其工作。
我刚刚下载并安装了 Microsoft 的 HTML Help Workshop,能够反编译和重新编译一些 15+ MB 的 CHM 文件,包括一个 25 MB 的文件。问题很可能是机器上的某个东西导致了问题,也许是病毒扫描程序。在编译之前,请尝试禁用任何病毒扫描程序。您是否尝试过在其他机器上编译 CHM?为什么思考你的内存不够了?
答案2
我遇到了类似的问题,HTML Help Workshop 无法编译我的 CHM,我的 CHM 也是 12MB 左右。它提供了错误消息:
HTML Help Workshop: hhw.exe - Fatal Application Exit [X]
There is not enough memory available for this task. Quit one or more programs to increase available memory, and then try again.
[OK]
我正在检查构建过程的记录输出,发现在我的索引文件中分配给单个关键字的主题太多了。
在这种情况下,当特定关键字有 7132 个主题与之关联时,构建工作正常,但当 7140 个主题分配给同一关键字时,构建失败。
我从索引中删除了该关键字,我的 CHM 成功编译。这意味着它看起来像与关键字关联的主题数量有限制-- 我在文档中没有找到有关这个限制的任何参考,但也许我的经验可以帮助其他人。
我意识到为特定关键字分配超过 1000 个主题无论如何都会违背索引的意义,而且不是一个好主意!
答案3
由于错误模式不一致,您是否排除了损坏的软件安装?
我会在全新安装上测试代码。