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.
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
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).
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
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.