Menu

#4 Help Info

open
nobody
None
2
2006-08-25
2006-08-14
Alan Pierce
No

Help>Help... should actually do something. It should
bring up information about things such as how to use
STIHRS, tips for use, and how to use the scripting system.

Discussion

  • Alan Pierce

    Alan Pierce - 2006-08-25
    • priority: 5 --> 2
     
  • oldspammer

    oldspammer - 2006-10-31

    Logged In: YES
    user_id=1602727

    MS Visual C++ / VC98 and Visual Studio will automatically
    create the makehelp.bat file that kicks off the creation of
    the help project file, and the corresponding .rtf help text
    file(s) of linked information.

    After this, during MS VS / VC 98 Re/Build-All, the elements
    of the help system are combined and compiled into a working
    .hlp file with all corresponding help context sensitivities
    in-place automatically.

    In my efforts to tinker with the source code of the current
    project release, and see what could be done, I generated an
    MFC application based off of the MFC-dll files, I assigned
    the project software the handling rights to the file dot
    extension that you had wanted, did a build of the project to
    get it to run, then I imported all of the STIHRS project's
    released version source files into MS VS 98, and flushed out
    the help file a little bit. There were a couple of filename
    conflicts, so I just changed the names a little to something
    like oldresources.h and similar such namings for others. I
    found also that the MFC / VC98 did not like the project to
    have more than one .rc file. There are probably other
    similar issues that have to be resolved, ...

    Because your project uses the Bloodshed DevC++ IDE w/WingG
    compiler, there is a bit of a disconnect between the MFC
    generated project, and the original DevC++ 4.9.x created
    code. For example, the MFC application calls the help
    system both when you press F1, and when clicking on the main
    menu help index / contents item(s), but your original
    application does not do this.

    I used the standard Microsoft SDK tools for Win32 with my MS
    Word 97 and came up with a reasonable .hlp file.

    Because the original source code application from DevC++
    never does activate help, neither contextually, nor by
    clicking Help on the main menu, the nice help file never
    comes up for the user to see and use.

    I have not yet investigated it much but third party help
    development environments are able to create parallel .hlp
    and .chm (compressed html) help file outputs. The initial
    such environment I found was HelpScribble 7.6.1 and it is
    available as trial-ware with unknown limitations. Some
    supporting files must also be downloaded from their site to
    permit existing help file project importing. They suggest
    getting a help decompiler and decompile an existing .hlp
    file to import the results into HelpScribble 7.6.1 because
    the .rtf files that MS Word edits ends up creating very
    cluttered and impossible to import .rtf files for
    HelpScribble 7.6.1 to import.

    In regard to the project documentation so that other
    developers can assist you better in your efforts, I found
    some useful tools by searching for "Calltree" or "Call tree"
    via Google. There are some projects that produce function
    calling tree graphs or indented static text listings.

    There may even be tools that quickly create graphical images
    of such call tree graphs that may even be accessible from
    within Microsoft Visual Studio that are dynamic and
    clickable to visit the parts of code that make and receive
    the given calls (calls by and to member functions and
    between classes and so on).

    Historically, I remember that in 1989-93 time frame,
    Microsoft C Version 5.0 and 5.1 had a calltree.exe program
    that could produce text file listings with dashes, vertical
    bars, plus signs and such like (as graphics) to make a
    reasonable printable file on continuous form dot-matrix
    printer output.

    By Google searching for [calltree software-exploration-tools
    SXT], then again with [CXT tools call-tree] I found
    shareware programs by a German fellow who has been writing
    and improving his software since the mid 1990s.

    There are lots of shareware links to lots of his older
    software, but I eventually found links in some of the later
    ones to more and more recent web addresses of his home page
    site for his most recent software including a html output
    source code colorizor (scc131.zip)?

    As of mid October 2006, the latest version code for SXT
    (Software Exploration Tools) for C / C++ on Win32 is
    cxt269.zip. But I first had to download and examine
    readme.txt files, etc. from earlier versions that were found
    via Google such as
    http://www.filelibrary.com/Contents/DOS/75/5.html I
    eventually read in one readme.txt:
    "CXT by Jürgen Müller, Eastleighstrasse 14, 70806
    Kornwestheim, GERMANY. This software is NOT public domain
    or free software, but is being distributed as SHAREWARE.
    Email: sxt@gmx.de Homepage: http://www.bigfoot.com/~sxt "

    I have not tried this package, but it sounds promising. I
    do not know if he has a built in time limit or any
    restrictions on the shareware version.

    Alternatively, there are other similar packages that may be
    open-source / free:
    Googling [call-tree open-source] gives old links that
    eventually lead to:
    http://kcachegrind.sourceforge.net/cgi-bin/show.cgi I do
    not know if this software will handle C++ and Oop code? Its
    latest version seems to indicate 2005 vintage so maybe? On
    this linked page there seems to be a screen shot of Linux or
    something with a GUI graphic or something on it that looks
    extremely interesting.

    I have my collection of help file directory stuff from my
    experiments, plus a readme.rtf file of notes / step-by-step
    instructions that I created to assist myself and anyone
    trying to continue with the help file building part of the
    project, but I don't know how to attach a file with these
    text comments. I suppose that I could email it to you, but
    I don't know how to do that through the email alias that I
    have on sourceforge.net?

    If you can find out for me, I can send you a zip file or
    something of what I've got for the entire project.

    = = = = = = = =
    In one message to me in the help forum you said that you
    were trying to go multi-platform to the MAC.

    This might _NOT_ be a good idea so early in the development
    unless you have someone experienced in both platforms who
    can help you with porting.

    I would think of such a move as a distracting diversion that
    would keep you from quickly getting to the next stages with
    your existing code base on Win32?

    Your project description clearly says that the platform of
    the project is MS Win32.

    Certainly such a direction towards the MAC takes you
    completely in a direction where I can no longer help you,
    nor can you follow any of my suggestions in regard to MFC
    where a lot of the open source code base that I know of
    exists for much of the functionality you want to have in
    your software.

    I would think that once the software is known working well
    within MS Win32 platform that a port to the MAC would be
    less divergent and have no impact on a base of existing,
    working Win32 code at that stage.

    Bits of the code that I've read through seem to be closely
    bound to MS Win32 functions like those that monitor mouse
    activity and record its movements. You will probably have
    to create some kind of modularity of this functionality and
    in doing so, create your own abstraction layer functions to
    isolate the platform details from other parts of your software?

    While this is nice, it does distract you from adding scanner
    input, and a whole bunch of the other stuff that you already
    have as priorities on this web site. No where on these web
    pages is there a priority or requirement placed on porting
    the project to MAC.

    If MAC is a high priority item, I suggest that you change
    your project's description page to provide MAC
    functionality, and immediately add a high priority to-do
    item for porting to the MAC with some of your reasoning as
    to why this is important at this early stage in the design
    and development of the project.

     
  • oldspammer

    oldspammer - 2006-11-05

    Logged In: YES
    user_id=1602727

    Here is further information about automatically generating
    help files for developers: call graphs, include file
    dependencies, class hierarchies, cross-references, constant
    identifiers, manifest constants, etc.

    Doxygen is a free automated documentation generator tool
    that produces html, and graphics image files. It analyses a
    source directory and produces a html subdirectory full of
    documentation.

    By itself, Doxygen produces nice html and optional php
    search forms in a nicely 3-framed navigational layout, but
    you can also download a free supplemental graphics package
    that boosts the utility of Doxygen several fold. The
    graphics component is named "GraphViz."

    I tried downloading Doxygen for windows, then installing it.
    Next, I downloaded and untar gzipped the "binary package" of
    GraphVis for windows.
    Next I right-clicked "My Computer," then Properties, clicked
    the Advanced tab, then clicked the "Environment Variables"
    button, then I selected the Path variable for the System
    (rather than the user), and inserted the bin directory for
    the Graphvis for windows package.
    Next, I downloaded and unzipped the WinGraphvis windows DLL
    CAB file, then right-clicked the INF file, then selected
    install.

    Most newer versions of windows have a local web server. By
    configuring it to run properly you can get additional
    features from the documentation that can be generated by
    Doxygen.

    You can have a local web site STIHRS Searchable set of
    source code & documentation:

    If you are running a local web server like Internet
    Information Server (IIS), you can install php first, then
    using the Internet Services Manager / IIS configuration tool
    or web administration for your web server configure a web
    virtual directory of the c:\stihrs\html directory, setting
    "index.html" to be the default web document for that virtual
    directory, and allowing (PHP) scripting to run within that
    virtual directory.

    By clicking Start, Programs, Doxygen, DoxyWizard, Wizard
    button, then enter the settings as follows:

    Project Tab:

    Project Name: STITHRS
    Project Version or ID: STITHRS 0.1.2
    Source Code Directory: C:/stihrs (yes the software does use
    forward slash for directories)
    Scan Recursively: checked yes
    Destination directory: C:/stihrs (it will place the output
    in the html subdirectory below this)

    Mode Tab:

    All entities (radio button selection checked)
    Include cross-referenced source code in the output (check
    box checked as yes)
    Optimize for C++ output (radio button selection checked)

    Output Tab:

    HTML (check box checked yes)
    With frames and a navigation tree (radio button selection
    checked)
    With search function (requires PHP enabled web server)
    (check box checked as yes)
    Man Pages (check box optionally checked as yes)

    Diagrams Tab:

    Use dot tool from the GraphVis package to generate (radio
    button selection checked)
    Then all diagram types check boxes all checked enabled yes.

    OK

    Then click on the save button when back in the wizard,
    saving the settings to C:\stithrs\doxyfile
    OK

    Working directory selected as C:\stihrs

    Lastly click the "start" doxygen processing button. The
    status should then change, and entries on the log file
    display control should start scrolling by...

    On your local web server, insure that you have a local
    default html file that in turn links to the virtual
    directory that you created for the C:\stithrs\html virtual
    directory. When you point your web browser at your local
    web server's default document, then click the previously
    mentioned link, it should take you to your newly created
    Doxygen generated developer documentation and graphics
    illustrations. If you have PHP running, the "search
    keyword" function will operate really nicely showing all of
    the various search hits. By clicking one of the result
    links, the web browser will quickly link to and load up the
    documentation regarding the clicked keyword item.

    http://www.google.ca/search?q=doxygen+diagrams
    http://www.graphviz.org/Download..php
    http://home.so-net.net.tw/oodtsen/wingraphviz/index.htm
    http://www.google.ca/search?q=php

    Initially when I ran Doxygen against your project code, I
    did not have the dot graphics GraphVis package installed /
    loaded / configured, and so Doxygen produced little or no
    graphics output at all. This made the documentation
    generated a little bit less visually enriched and less
    appealing slightly.

    Now that it I've got everything set correctly the output is
    great.

    You can re-run the Doxygen documentation generator whenever
    you want to refresh the information therein.

    The Windows Desktop Search or Content Indexing Service can
    also be run in concert with your web server with indexing
    applied directly to the source code directories, or just the
    documentation html folders.

    You can set up a sophisticated search .ASP script document
    that can search various web catalog indexes that you
    configure the content index server to generate on your
    system. You can right click "My Computer," select Manage.
    In the computer management MMC snapin view, you expand the
    services tree, then insure that the services applet has the
    Content Indexing service set to automatic (or manual).

    I think that I found that for some overall performance
    property things for Content Indexing Service, you have to
    have the Content Indexing stopped, but for most things the
    index service can be running. This means that the snapin's
    context menus when you right click the index service tree
    will display a different set of items depending if the
    service is running or not. I found that I did not want to
    wait for the system to be idle before the indexing service
    finally decided to begin indexing my documents, so one of
    the first things that I did was to force the performance
    sliders all the way to one side for immediate content
    indexing, then restarted the service.

    The content index directories are added per catalog name.
    It is possible to add your own catalogs so that only a
    certain set of directories that you select are the scope of
    searches and indexing--that way you don't get any hits
    returned on documents / source code that you do not want to
    be searched. Right clicking on the various tree entries in
    the MMC snapin will usually indicate what settings that you
    can adjust, edit, add, delete, etc.

    There are indexing filters (IFILTERS) that have been created
    to handle many different document types including .mp3
    (music id3 text), .doc (MS Word), .xls, .ppt, .txt, .htm,
    .html, .wpd (word perfect), .pdf (Adobe Acrobat), .djvu, and
    so on. I found that one of the .mp3/.wmv/.wmf IFILTERs had
    a bug that prevented the system from properly continuing to
    index your disk drive contents--it would just hang the
    indexing or something. The separate .mp3 IFILTER works
    though ... (Maybe I have a lot of large .wmv files that must
    be completely scanned to be indexed and this slows my system
    down a lot--so I disabled this IFILTER by unregistering it /
    renaming it).

    http://www.google.com/search?q=IFILTER
    http://www.google.com/search?q=site%3Amsdn.microsoft.com+IFILTER

    To develop a really good search.asp script / form, you
    usually have to URLEncode or HTMLEncode parts of the query
    string and result hits. Webhits highlighting is also
    possible with the correct syntax applied to alternate query
    result item links. I did a number of trial and error
    attempts until my search.asp script was working perfectly
    for all kinds of crazy queries that I was doing.

     

Log in to post a comment.

MongoDB Logo MongoDB