我在这里很困惑。我已经将我的CHM帮助从HtmlHelp工作室迁移到了HelpNDoc。我编译了CHM文件并更新了MFC项目,以直接指向正确的主题:
HtmlHelp((DWORD_PTR)_T("msa-options-publishers-db.html"), HH_DISPLAY_TOPIC);上面的方法适用于我以前的CHM文件。当我调用此调用时,会发生以下情况:

它找不到它。现在我在这里遇到了困难,因为如果我在IDE (VS2017)中单击VS2017,它会带我到这里。本文提供了一个演示主题的示例:
HWND hwnd =
HtmlHelp(
GetDesktopWindow(),
"c:\\Help.chm::/Intro.htm>Mainwin",
HH_DISPLAY_TOPIC,
NULL) ;上面的HtmlHelp API调用包含4个参数。然而,在我的CDialogEx派生类中,我只有两个参数:

因此,我需要找到一种方法来打开HelpNDoc编译的CHM文件中的任何主题。
更新
在进一步的研究中,我找到了讨论我正在使用的HtmlHelp API调用的主题(在CWinApp类中找到)。它指出:
参数
dwData指定其他数据。使用的值取决于nCmd参数的值。nCmd指定请求的帮助类型。有关可能的值以及它们如何影响dwData参数的列表,请参阅Windows中关于HTMLHelp API函数的uCommand参数。
因此,我们以这里结束,在这里我们将获得一个指向HH_DISPLAY_TOPIC细节的链接。我们已经绕了一圈。仔细观察,报告指出:
指定已编译帮助(.chm)文件、或已编译帮助文件中的特定主题。 若要指定定义的窗口类型,请插入大于(>)字符,后面是窗口类型的名称。
所以我的代码应该还行。
发布于 2018-06-12 12:14:31
你不会相信解决这个问题有多简单!
我用窗口进行了测试:

唯一起作用的是当我使用htm作为后缀而不是html时。请参见:

https://stackoverflow.com/questions/50816420
复制相似问题