最近使用FAR将官方版的JDK6中文版制作为chm格式的文件,在最后编译的时候出现下述错误信息:
*** Critical Error ***
FAR detected that MS Compiler hha.dll has crashed during compilation.
Please check your code carefully for errors.
For more info please see: http://helpware.net/FAR/far_faq.htm#HTML_Help_Compilation
Try restarting this application to clear the error.
*** Critical Error ***
而且编译多次总是过一段时间出现上述的错误,然后程序就自动退出。后来通过Google搜索了一下“MS Compiler hha.dll has crashed during compilation”,在Far的官方网上的FAQ中找到了答案。
造成的原因是:“The MS HTML Help compiler is a DLL (HHA.DLL) installed with HH Workshop. Thus when it crashes it will also cause it’s host application (FAR, Workshop, etc) to crash also.”,意思是说MS HTML Help编译器是一个随HH Workshop一起被安装的DLL(HHA.dll)文件,当它出现中断之后同时会导致依赖于它的宿主程序(FAR, Workshop等)也产生中断。
下面还列出了四种常见的导致错误的原因:非法的文件名、非法的HTML标签或字符、内存不足和过长的文件路径。其中在提到非法的文件名的时候,下面特别提到文件名中不要出现点号(.)这是因为HHA会认为类似xxx.h001.gif这样的文件是HTML文件,然后加以分析的时候造成异常中断。另外文件名中出现空格的话也会造成错误。
解决的方法也很简单,将中间的点号或空格去除就可以了。
参考资料:
HTML Help 1.x FAQ
One thought to “FAR编译chm文件中断原因及其解决方法”