3

小故事:我可以用 Doxygen 生成一个 CHM 文件。启动 CHM 文件,我观察到 Contents 和 Index 选项卡确实列出了页面、名称空间、类和这些类的成员。但是,单击这些目录和索引列表中的项目不会显示任何内容。

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

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

然后,我还想将 HTML 转换为压缩的 HTML (CHM) 文件。

我从 Microsoft 网站 ( https://msdn.microsoft.com/en-us/library/windows/desktop/ms669985(v=vs.85)下载了 Microsoft HTML Help Workshop 1.31 版(即htmlhelp.exe4.74.8703 版) .aspx)。我运行了安装程序。随着安装程序的进行,出现了一条弹出消息:

这台计算机已经有较新版本的 HTML 帮助。

但是,安装成功完成。而且,该hhc.exe程序就在我告诉它安装的地方。

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

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

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

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

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

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

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

3 回答 3

6

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

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

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

于 2015-06-04T14:27:46.643 回答
3

根本问题是 CHM 文件位于映射的网络驱动器上。

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

于 2015-06-04T16:26:06.677 回答
2

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

或者更好的是,不要使用带空格的路径。

于 2015-06-03T20:42:13.673 回答