Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net HTMLHelp加载错误CHM文件的可能解决方法?_.net_Chm - Fatal编程技术网

.net HTMLHelp加载错误CHM文件的可能解决方法?

.net HTMLHelp加载错误CHM文件的可能解决方法?,.net,chm,.net,Chm,显然,我从2001年开始在HTMLHelp中遇到了这个bug。(他们还没有修复它,但至少他们记录了它。) “错误:HTMLHelp()打开了错误的帮助文件” 他们建议的“修复”是让我重命名我的CHM文件。但我真的不想那样做 这里有更多关于它的内容:“相同的CHM打开Bug” “最简单的修复方法是在打开每个CHM之前,先在HHCtrl.OCX库上调用FreeLibrary(),然后再调用LoadLibrary() 只有当应用程序使用LoadLibrary动态加载HH API(HHCtrl.OC

显然,我从2001年开始在HTMLHelp中遇到了这个bug。(他们还没有修复它,但至少他们记录了它。)

“错误:HTMLHelp()打开了错误的帮助文件”

他们建议的“修复”是让我重命名我的CHM文件。但我真的不想那样做

这里有更多关于它的内容:“相同的CHM打开Bug”

“最简单的修复方法是在打开每个CHM之前,先在HHCtrl.OCX库上调用FreeLibrary(),然后再调用LoadLibrary()

只有当应用程序使用LoadLibrary动态加载HH API(HHCtrl.OCX)时,第二种解决方案才有效。使用VB等语言编写的静态加载API的应用程序将无法执行此操作。”

我的程序是.Net,我使用的是System.Windows.Form.Help.ShowHelp()。是否可能通过某种方式卸载HHCtrl.OCX(例如使用p/Invoke)进行欺骗?还有其他建议吗

编辑:

详细说明:HTMLHelp中有一个已知的问题,微软在2001年已经承认,但从未着手解决

在我的例子中,我有两个帮助文件,“…\Danish\help.chm”和“…\English\help.chm”。根据用户选择的语言,“我的程序”打开一种或另一种。问题是,如果用户显示帮助信息,然后切换语言,然后再次点击F1,程序会尝试打开其他帮助文件,但帮助支持代码会重新打开以前打开的帮助文件


有一个已知的工作,但是对我来说它看起来只适用于C++程序,而我的程序是.NET。所以我想问的是,是否有人知道如何在.Net程序中应用这种变通方法或其他修复方法。

这可能有点过激,但我最终做的是在我想要显示CHM帮助文件时启动一个新的Windows进程。微型进程程序是WinForms程序,但它不显示其形式。它的构造函数中只包含“Help.ShowHelp(this,chmFileName);”语句。(文件名作为参数传递给tiny help file process程序。)


作为一个不幸的副作用,即使在用户关闭“帮助”窗口后,该过程仍然存在。但我确实在启动新进程之前以及主程序关闭时终止了该进程。

这可能有点激烈,但我最终做的是在我想要显示CHM帮助文件时启动一个新的Windows进程。微型进程程序是WinForms程序,但它不显示其形式。它的构造函数中只包含“Help.ShowHelp(this,chmFileName);”语句。(文件名作为参数传递给tiny help file process程序。)


作为一个不幸的副作用,即使在用户关闭“帮助”窗口后,该过程仍然存在。但我确实会在启动新程序之前以及主程序关闭时终止该程序。

请不要回答您的问题exactly@Shri:我修复了一个断开的链接,并添加了更多信息。谢谢你的关注。我不明白你的问题exactly@Shri:我修复了一个断开的链接,并添加了更多信息。谢谢你的关注。