|
|
Comments and Discussions
|
|
 |

|
I just tested this with Visual Studio .NET 2003, and it worked fine for me. It's been a while since I wrote it, but I believe that the spaces had to be exactly right or it would be ignored. Here's what I have in the configuration file where it worked just now:
WARN_FORMAT = "$file($line) : warning : $text"
I get lines like this in my output window:
foo.h(93) : warning : Warning: Compound Foo not documented.
I also just tested with VS.NET 2005, and it also added them to the task list (once I clicked on the "Warnings" button to have it show warnings as well as errors).
|
|
|
|

|
I have respected exactly your WARN_FORMAT and it still not work. I am using Visual Studio 7.1 and doxygen 1.5.3. Here is an example output I have in the Output view
D:/DEV/DevBroadcast_VC7/P_SERVERS/P_Sapphire/sapphireserver/Processing/CSnmpAgent/SnmpAlarm.cpp(156) : warning : Warning: parameters of member CSnmpAlarm::AddToActiveTable are not (all) documented
but no line is added in task list.
Any Idea ?
|
|
|
|

|
I'm not sure what's going on. It looks like it's the same, but it's hard to tell with the word wrap. I think the important thing is the spaces around the colons. I can't find anything in the settings that looks like it would affect whether or not warnings are shown. Here's an example from my build that showed up in the task list: (I replaced the beginning of the path with "..." to make it shorter)
.../gil_png_opc_io_private.hpp(283) : warning : Warning: Compound detail::png_opc_writer is not documented.
I'm using VS.NET 2003, which is 7.1, as far as I know. I don't know what else to tell you. Sorry.
Phillip
|
|
|
|

|
Hello,
I dont' succeed working in VC7.
For doxygen I set the arguments as $(ProjectDir)\default.doxygen (without quotes)
and inititial directory as $(ProjectDir)
sometimes it works, sometimes it freezes
For view with IE7 I always got an url like
file://%22//C:\projets\essai\doxydoc\index.html witch obviously doesnt' work
If someone could help, thanks !
regards
JJC
|
|
|
|

|
The Wizard runs well. (it generates html output)
I Couldn't quite get it to work with Borland Builder 6, though. (No, I did not mean Builder 2006) Any Ideas?
The Graphical Diagrams do not seem to work?
Thanx for this 1 minute guide, though. It helped a lot...
paper, not paper
|
|
|
|

|
For the graphics, you need to install graphviz[^] separately - and specify it in the options.
If you have problems, I think the best way is to close your IDE, and then toy around with the settings using the doxygen wizard. (This can be a bit overwhelming, and some things have changed since I prepared the files for this article)
If it works with the wizard, but not from the IDE, you are close Just check the commands and especially the parameters you pass. I guess this is quite different from Visual Studio for you.
Good luck!
We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
Linkify! || Fold With Us! || sighist
|
|
|
|
|

|
How to dox e.g. the following code, espacially the inserted AFX_ parts? ///////////////////////////////////////////////////////////////////////////// // CAboutDlg dialog used for App About class CAboutDlg : public CDialog { public: CAboutDlg(); // Dialog Data //{{AFX_DATA(CAboutDlg) enum { IDD = IDD_ABOUTBOX }; //}}AFX_DATA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: //{{AFX_MSG(CAboutDlg) //}}AFX_MSG DECLARE_MESSAGE_MAP() }; TIA "doxygen runs in 10 min - but how to use?"-Friedhelm Schuetz
|
|
|
|

|
Hi,
I'm currently on the road, so I can't help zou much.
Generally, doxygen doesn't work quite well with the AFX_ stuff (well enough to ignore this, at least)
I never tried to doxy-commented (doxymented?) MFC-specific macros - Help is good enough for them For the handler methods, I typically doxyment the implementation part only, though I rarely need to: normally I use a "condensed single-class MVC", so the message handlers themselves are merely forwarders to actual methods, which can be documented normally.
Also, doxygen supports separating entity documentatyion fom the entity - i.e. you can put a doxygen comment anywhere you want, and mark it as (e.g.) "belongs to CFunnyDialog::StopJoking". see doxygen docs for info.
Of course, you have a harder question lurking: What needs to be documented, what not?
Pecularities of a library IMO need no documentation - as the poor guy who has to work with it should know these.
Class Properties - like Dyncreatable - should be documented with the class itself (and/or referenced in the constructor docs, if any)
For the virtual function/message handler declarations: The wizard respects on-lline comments, and IIRC doxygen can extract them. So you technically could turn the // DDX/DDV support into a ///< DDX/DDV support - but that doesn't help anyone, does it?
OK, maybe I should think about a followup article - "How to comment" code.
Friedhelm Schuetz wrote: "doxygen runs in 10 min - but how to use?"-Friedhelm Schuetz
correctly, of course
We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
Linkify! || Fold With Us! || sighist
|
|
|
|

|
Say you have a function that you want to document in the class but isnt coded in the class definition. For example...I am using MSChart and which is a class created from the Visual Studios C++ 6.0 and it has a bunch of functions. It is missing the event functions and I would like to document them with DOxygen. How do I accomplish this?
Chris
|
|
|
|

|
You can document certain entities separate from their code (I usually havea separate "doxygen only" source file that contains no code, just additional doxygen comments)
See here[^] and scroll down to "Documentation at other places".
I don't know if you can document an individual member function this way, or a function that is not available as source. But it's worth a try.
Some of us walk the memory lane, others plummet into a rabbit hole
Tree in C# || Fold With Us! || sighist
|
|
|
|

|
Thanks for the response. I dont think you understand my question or I didnt fully understand your response. Say there is a function called "void function1()" that is NOT coded in any of my classes but it exists. This "function1()" is an event that exists for the MSChart class developed by Microsoft Visual Studios. I would like to document it because there is no formal documentation in C++ about the MSChart Class (It only exists in VB). How do I do this? I have tried just putting a function definition in a class where the function doesn't exist and no output for that function is created.....I tried putting the following in a class where there is no "read" function and it doesn't put a read function in the DOxygen output even through I declared that I wanted it in the DOxygen output.
/*! \fn int read(int fd,char *buf,size_t count)
\brief Read bytes from a file descriptor.
\param fd The descriptor to read from.
\param buf The buffer to read into.
\param count The number of bytes to read.
*/
Chris
|
|
|
|

|
I have a code here, i want doxygen understand PSmileys have list of Smiley and show on
diagram as Collaboration diagram or Inheritance diagram
/**
* @class PSmileys
* @brief
* List of smileys.
*
* @author Duy Trinh
* @version 1.0.1
* @date 17 Feb 2006
*/
class PSmileys
{
public: // Define Child classes
/**
* @class PSmiley
* @brief
* Smiley.
*
* @author Duy Trinh
* @version 1.0.1
* @date 17 Feb 2006
*/
class PSmiley
{
public:
/**
* A constructor
*/
PSmiley();
/**
* A destructor.
*/
virtual ~PSmiley();
private:
};
public:
/**
* A constructor
*/
PSmileys();
/**
* A destructor.
*/
virtual ~PSmileys();
private:
CArray m_cSmileyList;
};
--------------------------
ERP VN: www.erpvn.net
|
|
|
|

|
Hello, I don't know how to make 'doxygen' to understand your list of elements, but I recomend you to use Graphviz for drawing the Collaboration diagram and Inheritance diagram in your project. It can be downloaded from: http://www.graphviz.org/[^] Good luck!
|
|
|
|

|
Ya, thanks.
I downloaded Graphviz, to integrate to Doxygen, but it dn't still understand the list as my above code.
With my above code, i think it have one - many relationship.
--------------------------
ERP VN: www.erpvn.net
|
|
|
|

|
Hi,
Nice article to get started !!! I just wanted to clarify a doubt...
Suppose I have 100s of files within my project and I change only the signature of one of the functions in a class, is there any way that doxygen can update the documentation for only this class/file or should I run doxygen for the whole project?
Thanks
Anand
|
|
|
|

|
I haven't seen such a feature. Maybe you ask the author of doxygen
[edit] But I found recent versions of doxygen quite fast (exceptthe .chm generation which is slowed down by the MS HTML Help compiler)
We say "get a life" to each other, disappointed or jokingly. What we forget, though, is that this is possibly the most destructive advice you can give to a geek.
boost your code || Fold With Us! || sighist
-- modified at 4:40 Saturday 14th January, 2006
|
|
|
|

|
Some reason i like looking at that xml ontop of my functions lol
|
|
|
|

|
Thanks or this great article, you have made using Doxygen straight forward and easy.
While trying this out I noticed I as missing some classes. Doxygen does not seem to handle class __declspec(dllexport) CClassName.
Have you been able to determne a fix for this?
|
|
|
|

|
I found the answer in the Doxygen manual. For those who are interested ...
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
PREDEFINED = __declspec(x)=
Will make things right. See the documentation for more complicated examples of using the Doxygen preprocessor.
Great tool, thanks for the article.
|
|
|
|

|
Hi,
I tried all steps to configure my vc++ tool menu and everything works fine!
The problem verifies when I try to process a workspace that is stored under C:\Documents and Settings\etc.....
And i observe this both to generate the document (doxygen.exe) and to view it (iexplore.exe)...
For processing phase i get the message
The error message is:
Error: configuration file C:\Documents not found!
Tool returned code: 1
For the exploring phase i get an error from Explorer.
It seems it's not able to understand C:\Documents and Settings.
It tries to look in C:\Documents%20and%20Settings\....
What's matter??
thanks
giusi
|
|
|
|

|
I think you forgot the quotes around the arguiments:
Add VC++ Tool: "doxygen"
- Add a new custom tool, called "DoxyGen", with the following parameters:
- Command: c:\program files\doxygen\bin\doxygen.exe (or where you installed it)
- Arguments: "$(WkspDir)\default.doxygen" (the config file - include the quotes!)
Pandoras Gift #44: Hope. The one that keeps you on suffering. aber.. "Wie gesagt, der Scheiss is' Therapie" boost your code || Fold With Us! || sighist | doxygen
|
|
|
|

|
Oooooooooops!!!!
It's Ok now!!!
Thanks
giusi
|
|
|
|

|
I'm by no means a professional programmer, but the project I'm working at the moment has grown somewhat fat, so I installed Doxygen and gave it a try. And it works really good! It's a kick to see all those classes nicely together, with all the colours and stuff...
|
|
|
|
|

|
I wouldn't class this site you mention as 'neat'. All it has is a few links to common open source sites (not done particularly well) which have nothing to do with windows or documenting code. Perhaps there was something I missed?
|
|
|
|

|
Hi,
I just have adapted your tutorial to VS 2005 beta 2.
Instead of $(WkspDir) use $(ProjectDir) when you construct the DoxyGen command in the External Tools menu. This is because you can say that all projects of a solution shall be created in their own subfolder and those folders are in parallel to the solution file (.sln).
In the View DoxyDoc command I adapted the Arguments line to
$(ProjectDir)doxydoc/index.html since $(ProjectDir) contains a backslash at the end and iexplore.exe cannot find a document called $(ProjectDir)\doxydoc\index.html
|
|
|
|

|
Hi, I tried Doxygen after reading this article and found it amazing. I got all the things right except the source code of the files. It just shows a blank box on the page. In the source of the html page, there is a tag <pre class="fragment">. If I make it <pre class="">, it shows the page correctly. Can somebody please explain what this tag is and is there any other "decent" way than going to the source of every page and modifying this tag. Regards, Pravin
|
|
|
|

|
(sorry - the mail you got was for another post)
I never had problems with this.
I once tried to understand the HTML styles used, but gave up, fragment seems to be the common class for formatting source code.
Are you usign a special .cpp stylesheet?
Or the usual stuff -
Are you using the "stable" doxygern build? Try the default settings.
Pandoras Gift #44: Hope. The one that keeps you on suffering. aber.. "Wie gesagt, der Scheiss is' Therapie" boost your code || Fold With Us! || sighist | doxygen
|
|
|
|

|
Hallo,
i hope anone can help me with doxygen. I want to crate a documantation of several c programms with doxygen and i want to have a first big general programm description created by doxygen. The problem is that every kind of comment must be related to a function, class, variable and so on. And I don't want to add a dummy function or something like this.
Thanks for help?
Greets
Roadrunner
|
|
|
|

|
add text to main page:
/// \mainpage
/// bla bla bla
Add a related page
/// \page pgMyPageId My Page Title
/// bla bla bla
- you can use \section, \subsection and \subsubsection to structure the page.
- you can use \ref to create links (e.g. \ref pgidMyPageID "See My Page Title")
You find details in the doxygen docs.
Pandoras Gift #44: Hope. The one that keeps you on suffering. aber.. "Wie gesagt, der Scheiss is' Therapie" boost your code || Fold With Us! || sighist | doxygen
|
|
|
|

|
Did someone generate CHM from doxygen docs?
This feature would be very usefull.
Contents, Searching, Keyword index and MSDN integration.
That would be really cool and convinient.
Best regards
Nick
|
|
|
|

|
Yes, you need to set the following doxygen options (roughly):
GENERATE_HTML = YES
HTML_OUTPUT = Folder
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET = "\\server\exchange\Software Development\Documentation\DoxyGen\doxygen.css"
GENERATE_HTMLHELP = YES
CHM_FILE = Module.chm
HHC_LOCATION = "c:\program files\HTML Help Workshop\hhc\hhc.exe"
GENERATE_CHI = YES
BINARY_TOC = YES
TOC_EXPAND = YES
DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 1
GENERATE_TREEVIEW = YES
TREEVIEW_WIDTH = 250
maybe you need to play around with this a bit, btu it works nicely.
And I think Michael Dunn has an article here about MSDN integration.
Pandoras Gift #44: Hope. The one that keeps you on suffering. aber.. "Wie gesagt, der Scheiss is' Therapie" boost your code || Fold With Us! || sighist | doxygen
|
|
|
|

|
Great!
Thanks and good luck,
Great article BTW.
Bye
|
|
|
|

|
I got the Doxygen tool setup fine and I can view my documentation and I'm ahppy with that. But when I tried to setup the tool for viewing the HTML, IE can't find it. The URL it is using looks correct but it claims it can't find anything: "http://%22c/Directory/Subdir/html/index.html".
I'm using .Net 2003 if that helps.
|
|
|
|

|
CasualT wrote:
http://%22c/
this doesn't look good
please post the command and the params you specify.
Pandoras Gift #44: Hope. The one that keeps you on suffering. aber.. "Wie gesagt, der Scheiss is' Therapie" boost your code || Fold With Us! || sighist | doxygen
|
|
|
|

|
Command: C:\Program Files\Internet Explorer\iexplore.exe
Arguments: $(SolutionDir)html/index.html
Inital Directory:
|
|
|
|

|
I have used Doc++ for a while but not very happy with it. I find Doxygen is much better and easier to configure the output. Since I am moving to a new job that they do not use auto doc tools, I think I will recommend Doxygen to my colleagues.
|
|
|
|

|
I have generated HTML files using Doxygen and compiled it using the HTML help workshop to create .chm file. It all worked well ...but when I try to locate a particular function name from the index list , it always ask to select the subentry to locate the function.
But the subentry is the name of the module(file) in which the function is written.And when I click on this it always goes to the begining of the file , not to the function.
How can I get to the function when I click on the function name?
Please help.
With Warm Regards,
Ancy
|
|
|
|

|
It may not be as sophisticated as DOxygen, but Doc++ is a lot more simpler and easier to use.
|
|
|
|

|
I find Doxygen very simple to use
I installed it with the defaults, I found Doxywizard on Start Menu, I seted up the dirs for my project, saved the file and run doxygen
Then I found index.html in the output dir. (I was amazed to see all the project's classes in full HTML)
Of course I have some experience with computers since a while ... so I allway prefer the full-featured product
Timothy Madden
Romania
------------------------------
And I don't wanna miss a thing
|
|
|
|
|

|
Hi,
/// HOW TO PUT doxygen comments here?
int MyFirstClass::myBaseClassMethod1(some params)
this should work with the default settings, (make sure you didn't select the JAVA sources option). Documentation will go to "MyFirstClass" (you find it under "Data structures")
For documentation inside the function body:
First, I rarely see need for this. Remember, you should use Doxygen to document the Interface of your classes and function. The only case where I found in-block comments useful are /// \todo statements.
You can activate parsing the body of a function by setting HIDE_IN_BODY_DOCS = NO in the doxygen config file.
For detailed questions regarding doxygen itself you can also check the doxygen mailing list, and other ressources you find on doxygen.org[^].
we are here to help each other get through this thing, whatever it is Vonnegut jr.
sighist || Agile Programming | doxygen
|
|
|
|

|
I am still astonished about the mass of positive response to this article - Thank you all for your feedback (be it comments, a vote, or ust viewing it). This is enourmously encouraging.
[little self-advertisement]
It took me a while to write a new CP article - but at least, it uses doxygen heavily. See for yourself if you like the results.
Files and Folders / CPath[^]
It is a "fat interface" class, and the documentation could stand a little bit more of overviews, but it can give you an impression what you can do with doxygen and some patience.
we are here to help each other get through this thing, whatever it is Vonnegut jr.
sighist || Agile Programming | doxygen
|
|
|
|

|
Is there anybody who has experiance how to make documentation with doxygen for the whole workspace (VC++ 6.0) in one document?
|
|
|
|
|

|
I haven't found yet a tool that does it for any workspace automatically.
If you have the entire Workspace and it's projects below one folder, you can juggle around with the project settings a bit. However, you might quickly find that doxygen doesn't offer the hierarchy levels (at least not automatically).
I simply use one doxygen project for each VC project, and have a "master index" HTML page that links to the individual projects. (I yet have to set up search for them, though)
The simplest approach for a generic solution would probably be generating/modifying a doxygen settings file, e.g. by parsing the dsw/dsp in Perl, or walking the Project structure in an VC addin.
Still, you would have to provide some hierarchy and grouping by doxygen comments, it's not done automatically (so the simplicity of "just add a comment at the right place" is lost)
we are here to help each other get through this thing, whatever it is Vonnegut jr.
sighist || Agile Programming | doxygen
|
|
|
|

|
I am not sure how to set this up for the workspace. In particular I am puzzled by the $(WkspDir) variable in your tool customization. Isn't that the directory of the workspace? So why do we add the config file to the project directory.
What is the PROJECT_NAME setting for? It says on the help:
"The PROJECT_NAME tag is a single word (or a sequence of words surrounded by double-quotes) that should identify the project for which the documentation is generated. This name is used in the title of most generated pages and in a few other places."
Does it mean it is used to identify the directory to process to generate the documentation?
Thanks,
QD2004
|
|
|
|

|
quantdev2004 wrote:
In particular I am puzzled by the $(WkspDir) variable in your tool customization
The problem is, that $(ProjDir) does not work in the Tools configuration (VC6), so I had to revert to relying oin the Workspace directory (and assuming one project/workspace, or at least a "main project" for each workspace)
At the time writing the article, I had no idea for a truly project specific solution. Recently I thought of adding a custom build command for the .doxygen file, which should work for multiple projects as well - but you have to set it up for each prject individually, and I don't know how to supress frequent builds.
There are a few devstudio plugins that make doxygen "accessible", in one or another way, but I never was happy with them.
The PROJECT_NAME is (IIRC) used as title on the main page. It does not determine the directory (AFAIK) but the setup I use at work writes the doc output to the file server, with the workspace name inserted as folder.
we are here to help each other get through this thing, whatever it is Vonnegut jr. boost your code || Fold With Us! || sighist | doxygen
|
|
|
|

|
Just discovered an article that provides some Design-by-Contract macros - and automatically includes their description in the doxygen documentation. Schweet!
Clickety[^]
Thanks, Antoine.
we are here to help each other get through this thing, whatever it is Vonnegut jr.
sighist || Agile Programming | doxygen
|
|
|
|
 |
|
|
General News Suggestion Question Bug Answer Joke Rant Admin
|
Setting up doxygen, a free tool to document your code, in a few simple steps.
| Type | Article |
| Licence | CPOL |
| First Posted | 19 Jan 2003 |
| Views | 747,780 |
| Downloads | 5,653 |
| Bookmarked | 392 times |
|
|