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
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

    >>I assume, that #1 has to be solved independently of the other two.

    Not necessarily. Take a look at - '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

    Take a look at Doxygen (

    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) {
    LVL 5

    Author Comment

    I'll try it out.

    Featured Post

    Find Ransomware Secrets With All-Source Analysis

    Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

    Join & Write a Comment

    Many modern programming languages support the concept of a property -- a class member that combines characteristics of both a data member and a method.  These are sometimes called "smart fields" because you can add logic that is applied automaticall…
    Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
    The goal of the tutorial is to teach the user how to use functions in C++. The video will cover how to define functions, how to call functions and how to create functions prototypes. Microsoft Visual C++ 2010 Express will be used as a text editor an…
    The viewer will be introduced to the member functions push_back and pop_back of the vector class. The video will teach the difference between the two as well as how to use each one along with its functionality.

    728 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

    Need Help in Real-Time?

    Connect with top rated Experts

    18 Experts available now in Live!

    Get 1:1 Help Now