gpt4 book ai didi

c++ - 在线托管帮助内容

转载 作者:太空狗 更新时间:2023-10-29 22:56:36 24 4
gpt4 key购买 nike

我正在尝试使用 Desktop Bridge 将我的一些 MFC 应用程序打包为 Windows 10 应用程序.

我在获取我的 HTML 帮助文件 (CHM) 并使用已安装的程序时遇到了无穷无尽的麻烦(新版本的 VS 不包含帮助文件,使用解决方法来包含该文件会导致文件我没有访问权限)。

所以这让我想知道在我的网站上托管在线帮助。出现的几个问题是如何最好地托管多个帮助主题,以及如何覆盖(在应用程序范围内)访问帮助主题的行为。 (我的应用程序是基于对话框的。)

所以我想知道是否还有其他人这样做过。我很想回顾一下这些问题是如何解决的。我在网上找不到任何东西。

最佳答案

我将我的 html 帮助放在一个文档中,使用 html anchor 到达感兴趣的主题。如果您有多个页面,请相应地调整 MyHelp。

我实际上并没有使用 Desktop Bridge,但想知道您是否尝试过这样的操作:

BOOL CMyDialog::OnHelpInfo(HELPINFO* pHelpInfo) 
{
MyHelp(_T("HIDD_MYDIALOG")); // HTML anchor goes here
return CDialog::OnHelpInfo(pHelpInfo);
}

...

// a global helper function for showing help
void MyHelp(LPCTSTR anchor)
{
extern CMyApp theApp;
TCHAR *cp, buffer[1000];

// look for the html document in the program directory
strcpy(buffer, _T("file:///"));
DWORD dw = GetModuleFileName(theApp.m_hInstance, buffer + strlen(buffer), sizeof(buffer));

if (cp = strrchr(buffer, '\\'))
{
strcpy(cp+1, _T("MyHelpDocument.htm#"));
strcat(cp+1, anchor);

// for some reason, I don't want the default browser to open, just the Internet Explorer
ShellExecute(NULL, _T("open"), _T("iexplore"), buffer, NULL, SW_SHOWNORMAL);
// or, for real online help, use just '_T("http://myurl.com/myonlinehelpdocument.html#") + anchor'
// instead of 'buffer' and ommit all before ShellExecute()
}
}

不过,我不确定 ShellExecute 是否会像在商店应用程序中那样运行。但肯定会有一种方法可以以某种方式打开 URL。您可能想尝试 Internet Explorer ActiveX 是否可以在应用程序内显示您的帮助页面。

关于c++ - 在线托管帮助内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47398674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com