1

我一直在尝试将大型 WinHelp 项目转换为 HtmlHelp,以便与我的 MFC 应用程序一起使用。

我大部分时间都在工作;但是,我发现从我的应用程序中的许多上下文中调用帮助会产生完全无用的错误消息。

无法启动帮助。

看来,如果我将相应的条目添加到该[ALIAS]部分,那么它就可以工作。

[ALIAS]
HID_FILE_OPEN=Html\HID_FILE_OPEN.htm

我的问题是,我真的需要为每个主题都这样做吗?使用 WinHelp,我必须添加到该[ALIAS]部分的唯一条目是那些我想成为其他东西的别名的主题。

HTML帮助有没有办法知道HID_FILE_OPENHtml\HID_FILE_OPEN.htm如果没有我为每个主题明确输入它,与帮助文件相对应的方法?

4

1 回答 1

1

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

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

您可以在为应用程序创建上下文相关帮助中找到更多信息。

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

通过在alias.hmap.h中以正确的方式使用 CHM 文件(例如 welcome.htm)作为所有上下文 ID 的目标,一种解决方法可能是使用它。

但是,我记得HHPmod 工具。我将它从我的教程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 名称。

请查看下载部分中从 WinHelp 项目创建的“修复”HTML 帮助的说明。向下滚动到例如在 HTML 项目中手动重写地图和别名数据

于 2017-09-29T09:27:18.157 回答