我想知道是否有人以前遇到过这个问题,并希望有一个解决方案。我目前正在开发的程序是一个 MFC 应用程序,并且.exe
由于依赖性问题而作为(无安装屏蔽)分发。我包括一个 HTML 帮助文件:.chm
扩展,嵌入在资源中。当用户请求帮助文件时,它会从资源中提取为二进制文件并复制到文件系统中。FindResource
, LoadResource
, 和LockResource
调用。提取文件后,我会这样调用ShellExecute
:
ShellExecute(m_hWnd, L"open", pathToFile, NULL, NULL, SW_SHOWDEFAULT);
HTML 帮助查看器启动时没有问题。但是,在某些计算机上无法查看文件中的页面。我看到“无法显示网页”消息。
我注意到两件事:
该错误仅在“您要运行此文件吗?”之后发生。当用户第一次尝试进入程序时会出现对话框。
如果 .exe 从 USB 运行(而不是从电子邮件下载),则可以查看 HTML 帮助文件
有没有人发生过这样的事情?有什么建议么?
编辑:
我正在使用ShellExecute()
,因为HtmlHelp()
调用给出了相同的结果。