我在我的应用程序中使用IWebBrowser2控件,我有各种各样的html文件作为资源存储在exe中。 要加载这些,我使用“res://”协议。 问题是,对于某些版本的IE,页面不再加载,而只是显示“操作已取消,Internet Explorer无法链接到所请求的页面”。
这些页面在.rc脚本中被引用,如下所示:
stats.html HTML DISCARDABLE“res \ stats.html”
res请求看起来像res:// C:\ path \ To \ MyApp.exe / stats.html
这曾经工作得很好,在某种程度上这种行为改变,大概是一个热修复或类似的东西。 现在,在我的机器上,它不起作用。 我试图改变respath看起来像:
水库://MyApp.exe/stats.html
那没用。
然后我试着改变rc脚本:
统计信息HTML DISCARDABLE“res \ stats.html”
和respath:
水库://MyApp.exe/stats
现在它工作! 然而这真的很烦人必须使用这种方式(从资源名称中删除“。”和文件扩展名)。 有谁知道这是否是一个错误? 一个特征? 为什么会发生这种情况,还有另外一种方法呢?
编辑:玩了一些后,我发现这个工作:stats.htm HTML DISCARDABLE“res \ stats.html”res://MyApp.exe/stats.htm
将资源名称中的“.html”扩展名更改为“.htm”,但我不知道为什么!
确保内容类型设置正确。 确保HKEY_CLASSES_ROOT.html将其内容类型设置为“text / html”,否则会发生奇怪的事情。 同样为.htm也是如此。