Понимание цели раздела [ALIAS]
Я пытался преобразовать большой проект WinHelp в HtmlHelp для использования с моим приложением MFC.
У меня все работает в основном; Тем не менее, я считаю, что вызов справки из многих контекстов моего приложения приводит к совершенно бесполезному сообщению об ошибке.
Не удалось запустить справку.
Похоже, что если я добавлю соответствующую запись в [ALIAS]
раздел то работает.
[ALIAS]
HID_FILE_OPEN=Html\HID_FILE_OPEN.htm
Мой вопрос, действительно ли мне нужно делать это для каждой отдельной темы? С WinHelp единственные записи, которые я должен был добавить к [ALIAS]
раздел были те темы, которые я хотел быть псевдонимом для чего-то еще.
Неужели HTML-справка не должна знать, что HID_FILE_OPEN
соответствует файлу справки Html\HID_FILE_OPEN.htm
без меня явно вводя это для каждой темы?
1 ответ
Короткая история - вы должны очистить файлы данных сопоставления для контекстно-зависимой помощи. Пожалуйста, проверьте информацию ниже для ваших потребностей и вашего окружения.
Назначение двух файлов, например alias.h и map.h, - облегчить координацию между разработчиком и автором справки. Файл сопоставления связывает идентификатор с номером карты - как правило, он может быть легко создан разработчиком и передан автору справки. Затем автор справки создает файл псевдонимов, связывающий идентификаторы с именами тем. Эта идея была заложена Ральфом Уолденом (бывший Microsoft) несколько лет назад.
Дополнительную информацию вы найдете в разделе "Создание контекстно-зависимой справки для приложений".
Вы знаете - преобразование WinHelp в HTMLHelp занимает много времени. И перенос идентификаторов контекста проблематичен. У меня на самом деле нет старых проектов MFC или VB, связанных с WinHelp для тестирования.
Обходным путем может быть использование домашнего файла CHM, например welcome.htm, в качестве одной цели для всех идентификаторов контекста, используя его правильным образом внутри alias.h и map.h.
Но я помню инструмент HHPmod. Я связал его из моего урока Преобразование WinHelp (HLP) в HTMLHelp (CHM).
Это инструмент, который написал Сид Пенстоун, чтобы помочь преобразовать проекты WinHelp в проекты HTMLHelp. Он использовал автоматическое преобразование, предоставленное в HTMLHelp Workshop, но когда он пришел, чтобы отредактировать новый HTML-проект, чтобы выполнить задачи, которые не были выполнены преобразованием, возникли некоторые проблемы:
- 8-буквенные имена файлов, используемые для записи новых файлов тем HTML, не связаны с исходными идентификаторами тем.
- Если есть значительное количество тем для управления, это расстраивает работу с автоматически сгенерированными именами файлов. Мои проекты имеют более 100 идентификаторов контекста и тем для каждого приложения.
- Если исходный проект WinHelp использовал файлы карты или псевдонима, они игнорируются. Пользователь должен вручную заново создать файлы псевдонимов, используя новые неинтуитивные (!) Имена файлов.
HHPMod переписывает преобразованный проект в новый проект справки HTML, восстанавливая исходные имена идентификаторов тем, исправляя все ссылки и перезаписывая файлы псевдонимов. Новый HTML-проект после компиляции будет правильно связываться с идентификаторами контекста справки приложения. Вам все равно придется исправить отсутствующие изображения и горячие точки, но вы будете работать с оригинальными именами идентификаторов тем.
Пожалуйста, ознакомьтесь с примечаниями по "Исправлению" HTML-справки, созданной из проектов WinHelp, в разделе загрузки. Прокрутите вниз, например, до Перезаписи данных карты и псевдонимов вручную в проекте HTML.