据我的理解,当程序访问.hlp文件时,Window的帮助程序会处理请求。我所拥有的是一个较老的exe,它想通过菜单选项跳转到.hlp文件中的特定主题。当然,Windows帮助提供了通用的“找不到主题”的错误,但是我真正喜欢的是如果它也告诉我它期望找到什么主题,所以我可以创建一个包含缺少主题的.hlp。有什么方法可以查看更详细的错误日志或查看请求本身,而不需要exe的源代码?从exe中调试嵌入的缺少帮助主题
回答
短篇小说 - 没有你的* .exe(或反编译)的源代码,并没有旧的WinHelp项目文件,我想说的第一个念头 - 没有机会。
WinHelp(.hlp)格式自20世纪90年代初期就已出现,并已被HTML Help 1.x(.chm)所取代。微软强烈建议你大约在十年前离开WinHelp。但是对于一个测试应用程序来说,它运行在我的Windows10机器上,就像一个魅力(借口德语文本),并采取了一些重要步骤来修复WinHelp Viewer。请注意,我不会说这里背景中显示的* .chm帮助文件的HTMLHelp查看器。
Windows帮助(的WinHlp32.exe)是已包含在开始与Microsoft Windows 3.1操作系统的Microsoft Windows版本中的帮助程序。但是,Windows帮助程序尚未针对许多版本进行重大更新,并且不再符合Microsoft的标准。因此,从Windows Vista的发布开始并在Windows 7中继续,Windows帮助程序将不会作为Windows的一项功能发布。如果要查看32位.hlp文件,则必须从Microsoft下载中心下载并安装该程序(WinHlp32.exe)。
我假设你已经安装了这个软件包并且有一个正在运行的32位应用程序,它在你的Windows7机器上运行WinHelp * .hlp文件。菜单中只有一个主题似乎对您不利。
这可能是由应用程序调用错误的TopicID或连接的帮助文件的TopicId中的拼写错误造成的。也许程序员还没有分配一个主题。造成您的错误的原因很多。
如果您在编写帮助文件方面有一些经验,那么您知道已编译的WinHelp文件* .hlp包含映射helpTopicId = topic。编译WinHelp时,您将再次需要此映射和别名文件!
创建一个新的WinHelp * .hlp文件是一个很难的方法(对于我也是15年后不用)。你必须反编译并重新编译。一个编辑的话题。您可能会被警告 - 因为丢失了contextId。见旧的东西从我的网站,网址为:Converting WinHelp (HLP) to HTMLHelp (CHM) - a freeware tutorial
你可能会幸运地反编译为HELPCONTEXTID
通常只有一个App.HelpFile *的.hlp从应用程序联系在一起。要在标准窗口中显示特定主题,Visual Basic 6调用如下所示: WinHelp(hWnd,App.HelpFile,HELP_CONTEXT,ByVal CLng(TopicID))。所以只有代码更新会给你一个新的TopicId的机会。这必须匹配(新)帮助文件。
是的,我正在运行Microsoft提供的帮助版本作为可选下载。但似乎我并不完全清楚。我已经用一个十六进制编辑器在应用程序周围挖了一遍,而且我不完全确定菜单选项是否已经实现。我所希望的是,有人知道如何捕捉到“找不到主题”的错误,并使用某种技巧来获取更多信息,所以我不必强行猜测主题ID。喜欢,也许更多的信息被记录在事件查看器中。但如果真的没有办法吸引更多的信息,我想这是无法帮助的。 – Rajada
@Rajada:如果可能的话,[反编译器](http://stackoverflow.com/questions/414068/is-there-a-visual-basic-6-decompiler)是一个不错的选择。您也可以创建一个带有200个虚拟主题的新_hlp_文件,以找出主题ID并将其重命名为测试。 ** TopicID **必须从1增加1到200,这很有用。 –
@Rajada:如果他们已经阅读[MSDN]的摘录(https://msdn.microsoft.com/en-us/library/aa261329%28v=vs.60%29.aspx?f=255&MSPPError=- 2147217396):_提示如果您有几个帮助主题,在开始输入HelpContextID之前可能有助于建立编号方案。为应用程序中的每个表单或主要元素指定不同范围的数字,例如,第一个表单为1000 - 1999,第二个表单为2000 - 2999,等等._ –
- 1. Cakephp中缺少帮助器
- 2. 帮助调试ajax问题
- 3. Eclipse包中缺少类,帮助
- 4. 帮助嵌入FSI
- 5. Rstudio调试 - 缺少步入按钮
- 6. 甲骨文帮助缺少逗号
- 7. 缺少位置参数? (python帮助)
- 8. 帮助与Oracle查询(缺少右paranethesis)
- 9. SQL帮助识别缺少数据
- 10. 嵌入youtube的帮助!
- 11. 帮助调试window.event.screenX
- 12. MIPS调试帮助
- 13. django调试帮助
- 14. 调试帮助Facebook hacakathon版问题
- 15. 帮助调试Apache,Passenger和Rails问题
- 16. ORA-29908:缺少辅助操作员的主要调用
- 17. 在Visual Studio 2008帮助系统中缺少Microsoft.WindowsMobile的帮助文件
- 18. 插入排序调试帮助
- 19. WordPress的 - 从父主题主题选项是缺少儿童主题
- 20. System.Diagnostics调试类缺少?
- 21. 在java中的Prolog嵌入帮助
- 22. CSS帮助响应主题
- 23. 帮助主题媒体wiki
- 24. 需要帮助调试Android中的NullPointerException
- 25. AMP缺少嵌入的视频
- 26. VS2005中缺少调试器类型
- 27. Android Studio中缺少调试选项卡
- 28. 在pthread库中缺少调试符号
- 29. 的IntelliJ缺少“@android:主题为”
- 30. 帮助调试PL/SQL包?
你正在运行什么操作系统版本? –
哦,当然,WIndows7,64位。但该计划本身显着更老...大约1998/1999年。 – Rajada
我想昨天添加标签'Winhelp'是在这个问题的背景下。 –