File-size limits for CHM (HTML Help format) files


We are using Microsoft's HTML Help Workshop, specifically hhc.exe, to assemble a CHM file containing HTML-formatted documentation. Officially there is no limit on the size of a CHM file, but as our doc set has increased in size we have been getting more and more build failures. The error messages aren't great but it appears we are running out of memory; however, increasing the memory hasn't made a difference. (In recent weeks the doc set has increased about 25% in size; we tried doubling the memory.)

Our CHM file is 12MB, which doesn't seem large. Can we tune this, or have we reached the unofficial limits of what this tool can handle, at least on a 32-bit machine?

Edited to add:

The error we get is a pop-up with the following text:

hhc.exe - Application Error
[X] The instruction at "0x453217d8" referenced memory at "0x########".  The
memory could not be "read".
Click on OK to terminate the program.
Click on CANCEL to debug the program.
[OK] [Cancel]

We run this from an automated build that calls an Ant target that uses <exec> to invoke hhc.exe. The build machine is running Windows Server 2003 and has 4GB of memory on it.

A meta-question: my original question about file size has been answered; what should I do with this followup that resulted from the comments? Re-cast the question? Accept the answer to the original question? As you can see from my rep I'm new here.

Best Answer

  • The "bitness" of a machine has nothing to do with this process. Bitness refers to the amount of memory a processor can address. 32 bit machines can address 4GB of memory, far more than you need for this. And even, if you needed more, the machine would simply page memory. Which would slow the process down, but not prevent it from working.

    I just downloaded and installed Microsoft's HTML Help Workshop and was able to decompile and recompile a handful of 15+ MB CHM files, including a 25 MB one. The problem is most likely something on the machine that is causing an issue, perhaps a virus scanner. Try disabling any virus scanners before you compile. Have you tried compiling the CHMs on a different machine? And why do you think you are running out of memory?