2015-06-03 669 views
2

小故事:我可以用Doxygen生成一个CHM文件。启动CHM文件,我发现内容和索引选项卡确实列出了这些类的页面,名称空间,类和成员。但是,单击这些内容和索引列表中的项目不会显示任何内容。如何使用Doxygen和HTML帮助编译器生成CHM?

我在使用Windows 7 Professional SP1(64位)的计算机上。

我使用Doxywizard在我的代码上运行Doxygen版本1.8.9.1。它正确地生成HTML输出;页面,命名空间,类和成员出现在文档中。

然后我又想将HTML转换成压缩的HTML(CHM)文件。

我从Microsoft网站(https://msdn.microsoft.com/en-us/library/windows/desktop/ms669985(v=vs.85).aspx)下载了Microsoft HTML Help Workshop 1.31版(即htmlhelp.exe版本4.74.8703)。我运行了安装程序。当安装程序正在进行时,出现弹出消息:

This computer already has a newer version of HTML Help.

但是,安装已成功完成。而且,hhc.exe程序就在那里,我告诉它安装。

我现在指定这些相关Doxygen的设置:

  • 向导 - >输出:
    • HTML检查
    • “压缩HTML(的.chm)准备” 选项被选中。
  • 专家 - > HTML:
    • GENERATE_HTMLHELP = YES
    • CHM_FILE = Foo.chm
    • HHC_LOCATION = C:\ Program Files文件(x86)的\微软\的HTML Help Workshop的\ hhc.exe

当我再次运行Doxygen的,它会报告错误:

error: failed to run html help compiler on index.hhp 

在预期的位置生成Foo.chm文件。但是,如上所述,它缺少很多内容。

我试着在Doxygen生成的HHP文件上手动运行hhc.exe。它不表示任何错误。

C:\Program Files (x86)\Microsoft\HTML Help Workshop>hhc c:\test\html\index.hhp 
Microsoft HTML Help Compiler 4.74.8702 

Compiling c:\test\html\Foo.chm 

Compile time: 0 minutes, 3 seconds 
292  Topics 
3,855 Local links 
83  Internet links 
0  Graphics 

Created c:\test\html\Foo.chm, 259,580 bytes 
Compression decreased file by 1,077,915 bytes. 

然而,结果是一样的:一个Foo.chm文件缺少内容。

我后来发现我在我的电脑上安装了另一个HTML Help Workshop。但是,hhc.exe是完全相同的版本。所以,这可能不是问题。

你能否建议我还可以尝试获取所有文档内容以显示在CHM文件中?

回答

4

当我看到这个问题(html存在和chm有内容但内容不可见)时,这是因为Windows安全已经“阻止”了chm文件。要查看这是你遇到的问题,请尝试以下操作:

  1. 在Windows资源管理器中,右键单击生成的.chm文件并选择属性。
  2. 在“常规”选项卡上,如果看到“解除阻止”按钮,请单击它。
  3. 关闭对话框并打开.chm文件。

(我还没有遇到这个问题,doxygen的.chm文件本地产生的,但我从你的描述希望,这可能会解决你的问题。)

+0

我没有看到“阻止”按钮点击。但是,这让我想到了正确的道路。我已经简化了我的上述问题描述,说“Foo.chm”文件在'c:'驱动器上。但是,它实际上位于映射的网络驱动器上。当我将CHM文件复制到计算机上的物理驱动器时,显示的所有内容。问题解决了。谢谢。 –

2

在您的doxyfile中,将路径hhc.exe放在双引号中,因为它包含空格。

甚至更​​好,不要使用带空格的路径。

1

面临的关键问题是,CHM文件是在映射的网络驱动器。

当我将CHM文件复制到计算机上的物理驱动器时,会显示所有内容。