3 Replies Latest reply on Oct 10, 2007 3:57 PM by epsobolik

    RoboHelp_CSH.cpp with MS Visual Studio 2005

    epsobolik
      I have RoboHelp 6 and am trying to convert from using HTMLHelp to FlashHelp. I didn't use RoboHelp_CSH to call HTMLHelp, but it looks likes it's pretty much essential with WebHelp and FlashHelp. When I include RoboHelp_CSH.cpp in the project, I get an error C2259: 'ATL::CRegObject' : cannot instantiate abstract class and then a list of unimplemented abstract functions. The file is atlbase.h, which is #included in RoboHelp_CSH.cpp. It ends up that CRegObject is obsolete and has been replaced by other classes, but is included for 'backward compatibility'. atlbase.h and the CRegObject class are all part of MFC. Is there a missing inlcude? Is there a version of RoboHelp_CSH.cpp and .h that compile under VS 2005? Is there a way to not use RoboHelp_CSH with FlashHelp?
        • 1. Re: RoboHelp_CSH.cpp with MS Visual Studio 2005
          Ben Minson Level 2
          On Peter Grainge's site, when talking about doing CSH using map IDs, he mentions the need to link to the RoboHelp_CSH include file. However, in the method of using URLs for context-sensitivity, he does not mention having to link to the include file. If that was intentional, it would indicate that you don't need the RoboHelp_CSH include when going with the URL method. Peter may be able to confirm that. This page also talks about a direct call to the topic, which doesn't bring up the toolbar and left pane automatically (you'd have to click a "Show" link at the top to get them to appear).

          Note that Peter's info is about linking from Web pages, so it may need tweaking to work for VS. Though described for WebHelp, the functions should also work for FlashHelp.

          Hope this helps,

          Ben
          • 2. Re: RoboHelp_CSH.cpp with MS Visual Studio 2005
            Peter Grainge Adobe Community Professional (Moderator)
            The method can be used for calling from an application as well as long as it can specify a URL.

            You don't need a file as such but there needs to be something that allows the developer to know what the URL is. We have a convention for naming files and an agreed structure. That way we know what name to give a file and the developers know what it will be and where. They can enter the URLs without looking anything up. Works for 12,000 topics!

            • 3. Re: RoboHelp_CSH.cpp with MS Visual Studio 2005
              epsobolik Level 1
              I can see how to CALL the fns in RoboHelp_CSH.cpp (and declared in RoboHelp_CSH.h). It's getting RoboHelp_CSH.cpp to compile in VS 2005 that's my problem. It compiles fine in VS 6, but not in VS 2005.

              I thought there might be a way to eliminate calling RH_ShowHelp() entirely. That's what we did when we were using WinHelp and HTMLHelp.

              5 minutes later...
              I did manage to hack RoboHelp_CSH.cpp. http://support.microsoft.com/kb/166717 had the clue. Not sure why it works, but #define'ing _ATL_STATIC_REGISTRY instead of _ATL_DLL satisfied the compiler. Now to see if it works. And still works in VS 6. And doesn't cause atl.dll to need to be shipped. etc.