Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium


I would like to provide a documentation for my program in three different ways. Is there a way to easily achieve that task?

Posted on 2004-11-19
Medium Priority
Last Modified: 2010-04-01
Hi experts,
I would like to have three kinds of documentation.
1. Have a class documentation (What a function really does, what my vars are good for,...)
2. I would like to give manpages for the UNIX version of the program
3. I would like to give some sort of documentation for the Windows version.

I assume, that #1 has to be solved independently of the other two.
Any suggestions?
Question by:allmer
LVL 86

Accepted Solution

jkr earned 1000 total points
ID: 12629224
>>I assume, that #1 has to be solved independently of the other two.

Not necessarily. Take a look at http://ccdoc.sourceforge.net/ - 'ccDoc' generates HTML documentation for your project. And, there's also 'c2man', that generates man pages from source code. 'ccDoc' should cover 1 and 3.
LVL 14

Assisted Solution

wayside earned 1000 total points
ID: 12629473
Take a look at Doxygen (www.doxygen.org).

You put your comments (starting with //! insteadn of // ) in the source files using certain tags, then Doxygen can generate html documentation or man pages, or various other formats as well.

Here's a sample of comments for a member function of a class, showing some of the tags that are available. The web site listed above has links to projects that use Doxygen, so you can see what the output looks like.

//! Stop monitoring bandwidth usage
//! Decrements the counter keeping track of how many times
//! StartMonitoring() was called; when it hits zero, stop the
//! thread that is collecting performance data.
//! If the forcestop argument is true, the thread is stopped
//! regardless of the counter value.
//! @param bool forcestop - if true, forcibly stops the monitoring
//! thread
//! @return the StartMonitoring counter value
//! @see BandWidthThrottler::StartMonitoring()
int BandwidthThrottler::StopMonitoring(bool forcestop) {

Author Comment

ID: 12730514
I'll try it out.

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

C++ Properties One feature missing from standard C++ that you will find in many other Object Oriented Programming languages is something called a Property (http://www.experts-exchange.com/Programming/Languages/CPP/A_3912-Object-Properties-in-C.ht…
Basic understanding on "OO- Object Orientation" is needed for designing a logical solution to solve a problem. Basic OOAD is a prerequisite for a coder to ensure that they follow the basic design of OO. This would help developers to understand the b…
The goal of the video will be to teach the user the difference and consequence of passing data by value vs passing data by reference in C++. An example of passing data by value as well as an example of passing data by reference will be be given. Bot…
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.
Suggested Courses

564 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question