Файл локальной справки для локального индекса HTML (RoboHelp) в MFC не открыт

Я следовал всем инструкциям, указанным здесь:

http://help.adobe.com/en_US/robohelp/robohtml/WS5b3ccc516d4fbf351e63e3d11aff59c571-7f43.html

Мой обработчик CMainFrame :: HtmlHelp выглядит следующим образом:

void CMainFrame::HtmlHelp(DWORD_PTR dwData, UINT nCmd)
{
// TODO: Add your specialized code here and/or call the base class

CWaitCursor wait;
// Get the path to the Help system
CWinApp* pApp = AfxGetApp();
ASSERT_VALID(pApp);
// Set the path to server-based help
CString csOnlineHelpPath = _T("C:\\Help\\Final\\index.htm");
PrepareForHelp();
// must use top level parent (for the case where m_hWnd is in DLL)
CWnd* pWnd = GetTopLevelParent();
// finally, run the RoboHelp Help engine
if (!RH_ShowHelp(pWnd->m_hWnd, csOnlineHelpPath, nCmd, dwData))
AfxMessageBox(AFX_IDP_FAILED_TO_LAUNCH_HELP);}

Проблема в том, что помощь никогда не открывается. Я попытался отладить файл RoboHelp_CSH.cpp и обнаружил, что в строке # 3267 с кодом

MultiByteToWideChar(CP_ACP, MB_USEGLYPHCHARS, szTempFile, (int)uLen, bstr, uLen+1);

у буфера bstr есть дополнительный символ в конце, который делает следующий код

hr=s_pstBrowser->Navigate(bstr, &vFlags, &vTargetFrameName, &vPostData, &vHeaders);

HWND hWnd;
hr=s_pstBrowser->get_HWND((long*)&hWnd);
if (SUCCEEDED(hr))
{
::SetForegroundWindow(hWnd);
}
::SysFreeString(bstr);

}

терпеть неудачу. Исходный файл szTempFile содержит данные ниже

C: \ Users \ sdancer \ AppData \ Local \ Temp \ robohelp_csh.htm

и bstr следующее (DC2 — это символ, который я показываю в блокноте ++, кроме VS2008 я вижу стрелки вверх и вниз).
C: \ Users \ sdancer \ AppData \ Local \ Temp \ robohelp_csh.htmDC2

Что я здесь не так делаю?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]