了解[ALIAS]部分的目的

时间:2017-09-28 23:54:20

标签: chm html-help html-help-workshop

我一直在尝试将大型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 个答案:

答案 0 :(得分:1)

简短的故事 - 您必须清理映射数据文件以获取上下文相关的帮助。请根据您的需求和环境测试以下信息。

两个文件的目的,例如 alias.h map.h 是为了简化开发人员和帮助作者之间的协调。映射文件将ID链接到地图编号 - 通常这可以由开发人员轻松创建并传递给帮助作者。然后,帮助作者创建一个别名文件,将ID链接到主题名称。这是拉尔夫沃尔登(前微软)多年前(几十年前)背后的想法。

您可以在Creating Context-Sensitive Help for Applications找到更多信息。

您知道 - 将WinHelp转换为HTMLHelp非常耗时。迁移上下文ID是有问题的。我实际上没有将旧的MFC或VB项目与WinHelp连接进行测试。

可能要使用CHM文件的主页,例如welcome.htm作为所有上下文ID的一个目标,在 alias.h map.h 中以正确的方式使用它。

但是,我记得HHPmod tool。我将其与我的教程Converting WinHelp (HLP) to HTMLHelp (CHM)相关联。

这是Sid Penstone编写的一个工具,用于帮助将WinHelp项目转换为HTMLHelp项目。他使用了HTMLHelp Workshop中提供的自动转换功能,但当他编辑新的HTML项目以完成转换未完成的任务时,出现了一些问题:

  • 用于编写新HTML主题文件的8个字母的文件名与原始主题ID无关。
  • 如果要管理大量主题,使用自动生成的文件名会很令人沮丧。我的项目每个应用程序有超过100个上下文ID和主题。
  • 如果原始WinHelp项目使用了地图或别名文件,则会忽略它们。用户必须使用新的非直观(!)文件名手动重新创建别名文件。
HHPMod将转换后的项目重写为新的HTML帮助项目,恢复原始主题ID名称,更正所有链接以及重写别名文件。新的HTML项目在编译时将正确链接到应用程序的帮助上下文ID。您仍然需要修复丢失的图像和热点,但您将使用原始的主题ID名称。

请查看下载部分中的Notes on “Fixing Up” HTML Help Created from WinHelp Projects。向下滚动到例如手动重写HTML项目中的地图和别名数据