Я создаю настольное приложение MFC с выпуском Visual Studio 2022 Community. Я хочу включить в него некоторую справочную документацию пользователя, которая будет установлена вместе с приложением (т. е. должна быть установлена локально на компьютере пользователя и не доступна через Интернет).
НО я не могу нигде увидеть, как это сделать или найти какие-либо инструменты для создания такой справочной документации.
Даже для справочной документации, доступ к которой осуществляется через подключение к Интернету, я не могу сразу увидеть какие-либо инструменты или утилиты с Visual Studio, которые делают это возможным? Существуют ли сторонние приложения, которые позволяют разработчику приложения создавать справочную документацию? Спасибо всем, кто может подсказать.





Я использую HelpNDoc. Бесплатная версия позволяет легко создавать справочную документацию в форматах CHM и HTML.
И для любого из этих выходных данных довольно легко заставить проект MFC отображать тему. Например:
void CMeetingScheduleAssistantApp::DisplayHelpTopic(CString strTopic)
{
CString strURL = _T("https://help-msa.publictalksoftware.co.uk/") + strTopic;
if (theApp.UseDownloadedHelpDocumentation())
{
// CHM files use 3 letter suffix
strTopic.Replace(_T(".html"), _T(".htm"));
HtmlHelp(ptr_cast<DWORD_PTR>(strTopic.GetString()), HH_DISPLAY_TOPIC);
}
else
ShellExecute(nullptr, nullptr, strURL, nullptr, nullptr, SW_SHOWDEFAULT);
}
В вашем случае я бы скомпилировал как CHM, так как его можно установить на целевой компьютер. Но вы также можете создавать PDF, DOCX и / или другие форматы.
Существуют и другие приложения, которые создают файлы CHM (например, HTML Help Workshop), но с HelpNDoc это менее сложно, поскольку все данные справки управляются в одном месте.
@DavidH Это только первые ссылки, которые я смог найти. Но Microsoft предоставляет Html Help Workshop. Но теперь я использую HelpNDoc.
Теперь я смог создать начальный тестовый файл .CHM с бесплатной загрузкой HelpNDoc и смог запустить полученное окно справки HTML из специального пункта меню «Справка» в строке меню в моем приложении MFC. НО... приведенный вами пример кода не работает. Вместо этого я использовал следующий код:
void CMainFrame::OnHelpLaunchhelp() { CString strTopic = L"C:\\Temp\\MFCAPPHelp.chm"; HtmlHelpA(GetSafeHwnd(), "C:\\Temp\\MFCAPPHelp.chm", HH_DISPLAY_TOPIC, 0); }
В очередной раз благодарим за помощь. Следующие шаги должны решить... как запустить окно справки, отображающее конкретную тему (а не точку входа/начала справочной документации) И как указать размер и положение окна справки на дисплее, когда оно запущен.
@DavidH Мой пример кода фактически показывает вам, как вызывать определенную тему.
@DavidH Также обратите внимание, что мой код находится в классе приложения как общедоступный метод. И вы передаете ему тему для отображения. И он предназначен для отображения chm или онлайн html. Вы извлекаете код, который вам нужен.
@DavidH Я думаю, вы должны «Принять» этот ответ, нажав «Отметить», поскольку он касается исходного вопроса, и вы можете начать новый вопрос о контекстной помощи.
Большое спасибо! Я проверю это. Я искал приложение Microsoft HTML Help для загрузки, но ссылка оказалась мертвой, и я предпочитаю не получать копию продукта по ссылке, которая не принадлежит производителю.