0

我继承了一个旧的 Visual Basic 项目。除了 Windows 10 上的 .hlp 文件外,它仍然有效。

我发现了如何将 .hlp 文件转换为 .chm。

谁能告诉我如何在VB项目中用HTMLHelp替换WinHelp?

提前致谢

4

2 回答 2

1

正确答案取决于您的确切要求。

如果您只想启动旧的 *.exe 并显示 *.hlp 文件 (WinHelp),请导航至以下链接(搜索Run WinHelp on Windows10)并阅读其中的所有进一步链接:

请注意一个名为HHPMod的工具,专门用于迁移上下文相关的 F1 帮助。如果在您的旧项目中大量使用 F1 帮助,则可能很难从 WinHelp ( .hlp) 切换到 HTMLHelp ( .chm)。

但是,十年前您已经走上了推荐的正确轨道,并且在今天仍然有效“帮助作者应该转到 HTML Help 1.x (.chm)”。

如果您真的想重新编译您的旧项目,那么下载 Visual Basic 6 示例项目可能会对您有所帮助(请参阅下载部分)。

首先,您需要通过设置来指定要使用的帮助文件,例如:

App.HelpFile = App.Path & "\helpfile.chm"

您会在一个模块中找到所有声明,modHelp.bas例如

Private Declare Function HtmlHelp Lib "hhctrl.ocx" Alias "HtmlHelpA" _
            (ByVal hwndCaller As Long, ByVal pszFile As String, _
            ByVal uCommand As Long, ByVal dwData As Long) As Long

Private Declare Function HTMLHelpTopic Lib "hhctrl.ocx" Alias "HtmlHelpA" _
             (ByVal hwndCaller As Long, ByVal pszFile As String, _
            ByVal uCommand As Long, ByVal dwData As String) As Long

Private Declare Function HtmlHelpSearch Lib "hhctrl.ocx" Alias "HtmlHelpA" _
            (ByVal hwndCaller As Long, ByVal pszFile As String, _
            ByVal uCommand As Long, dwData As HH_FTS_QUERY) As Long

Private Declare Function HtmlHelpIndex Lib "hhctrl.ocx" Alias "HtmlHelpA" _
            (ByVal hwndCaller As Long, ByVal pszFile As String, _
            ByVal uCommand As Long, dwData As HH_AKLINK) As Long

有关详细信息,另请参阅为 Visual Basic 6 项目使用模块

于 2018-09-04T08:52:58.623 回答
0

我已经成功让安装程序安装 WinHlp32 模块。我不得不在设置中添加一些额外的代码来让模块注册。

到目前为止,我只在几台机器上试过这个......

谢谢你的帮助。

于 2018-09-27T00:27:33.487 回答