Как создать CHM с помощью Doxygen и HTML Help Compiler?

Рассказ: Я могу создать файл CHM с помощью Doxygen. Запуская файл CHM, я замечаю, что на вкладках «Содержание» и «Указатель» перечислены страницы, пространства имен, классы и члены этих классов. Однако при щелчке по элементам в этих списках содержимого и указателя контент не отображается.

Я на компьютере с Windows 7 Professional SP1, 64-разрядная версия.

Я использую Doxywizard для запуска Doxygen версии 1.8.9.1 в моем коде. Он правильно генерирует вывод HTML; страницы, пространства имен, классы и члены отображаются в документации.

Затем я хочу преобразовать HTML-файл в сжатый HTML-файл (CHM).

Я скачал Microsoft HTML Help Workshop версии 1.31 (т.е. htmlhelp.exe версия 4.74.8703) с веб-сайта Microsoft ( https://msdn.microsoft.com/en-us/library/windows/desktop/ms669985(v=vs.85).aspx ). Я запустил установщик. Когда установщик продолжал работу, появилось всплывающее сообщение:

На этом компьютере уже установлена ​​более новая версия справки HTML.

Однако установка успешно завершена. И, hhc.exe Программа там, где я сказал, чтобы установить.

Теперь я укажу эти соответствующие настройки Doxygen:

  • Мастер -> Вывод:
    • HTML проверен
    • выбран вариант «подготовиться к сжатому HTML (.chm)».
  • Эксперт -> HTML:
    • GENERATE_HTMLHELP = YES
    • 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 вручную на файл HHP, сгенерированный Doxygen. Это не указывает на какие-либо ошибки.

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?

3

Решение

Когда я видел эту проблему (html существует, и chm имеет контент, но этот контент не виден), это произошло потому, что безопасность Windows «заблокировала» файл chm. Чтобы убедиться, что это то, с чем вы столкнулись, попробуйте следующее:

  1. В проводнике Windows щелкните правой кнопкой мыши созданный файл .chm и выберите свойства.
  2. На вкладке «Общие», если вы видите кнопку «Разблокировать», нажмите ее.
  3. Закройте диалоговое окно и откройте файл .chm.

(Я не сталкивался с этой проблемой с локально сгенерированными файлами doxygen .chm, но я надеюсь, что из вашего описания это может решить вашу проблему.)

5

Другие решения

В вашем докси-файле укажите путь к hhc.exe в двойных кавычках, так как содержит пробелы.

Или, что еще лучше, не используйте пути с пробелами.

2

Существенной проблемой было то, что файл CHM находился на подключенном сетевом диске.

Когда я скопировал файл CHM на физический диск на моем компьютере, все содержимое отображается.

2