2015-06-03 5 views
2

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

Я нахожусь на компьютере с использованием Windows 7 Professional SP1, 64-бит.

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

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

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

This computer already has a newer version of HTML Help.

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

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

  • Wizard -> Вывод:
    • HTML проверяется
    • "подготовить для сжатого HTML (.chm)" выбрана опция.
  • Expert -> 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 на моем компьютере. Но, 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 на физический диск на своем компьютере, отобразится весь контент.