Doxygen is an open source tool
that generates documentation
from commented source code
. It currently has native support for C++
(there's also a kludgy way to get it to work with VB
, but it isn't pretty).
Basically, what Doxygen does is look at your source code and extrapolate what it can from the source itself (classes, functions, variables, etc.). By using specially-formatted comments, the developer can further document each of these language constructs, resulting in detailed program documentation. Doxygen will even generate dependency graphs and inheritance diagrams based on the code structure.
In many respects, Doxygen is similar to Javadoc (it even supports Javadoc-style comments and commands), but the best thing about Doxygen is how flexible it is. It supports several different types of doc comments, allowing you to use the format that best fits your code (or your personal tastes). In addition, Doxygen can output documentation in a multitude of formats including HTML, LaTeX, RTF, PostScript, hyperlinked PDF, compressed HTML, and UNIX Man page.
Doxygen has saved me countless hours by allowing me to write documentation as I code and then parse it into a variety of useful formats. I couldn't live without it.
You can get more info on Doxygen (and download it) at http://www.stack.nl/~dimitri/doxygen/