Create html and chm documentation from C# or C++ Visual Studio source code

Products to be used


Doxygen (doxywizard.exe) is used to generate HTML documentation from source files. Furthermore, it generates the elements needed to create the .chm (compressed HTML) file too. Doxygen can be used under the terms of the GNU General Public License. Doxygen can be downloaded from

Microsoft HTML Help Workshop ®

HTML Help Workshop (hhw.exe) is used to generate compressed HTML files (.chm). This tool is free and can be downloaded from here.

Procedure for generating the technical documentation

Generating HTML files

  • Execute Doxygen GUI frontend (doxywizard.exe).
  • Configure the parameters by using either “Wizard” or “Expert” mode.
  • In order to prepare the .chm file generating, in “Output” tab, it has to check “HTML” and “prepare for compressed HTML” in wizard mode. Whether the expert mode has been chosen, in “HTML” tab, it has to check “GENERATE_HTMLHELP” and to enter the .chm filename (with the extension) in “CHM_FILE” field.
  • Save the configuration file.
  • Run the generating process by clicking on the “Start” button.
  • Check the result by executing “index.html” in the “html” sub folder.
In addition of the html documentation, three more files are supposed to be generated in the “html” sub folder: “index.hhp”, “index.hhc” and “index.hhk”.

Generating compressed HTML file (.chm)

  • Execute HTML Help Workshop (hhw.exe).
  • Open the project file: index.hhp.
  • Eventually change the compiled file location to drop it in the “Doc” folder.
  • Compile the HTML files.
  • Outside HTLM Help Workshop, open the created file in order to  check it.

C# and C++ comments restrictions in Visual Studio ®

Doxygen recognize the C# and C++ comments tags like ///<summary></summary>,///<param></param>, ///<returns></returns> and the other ones. But, for example, under Windows version, it does not recognize the line feed in comments.
So, whether you want to go beyond these basic features and if you want  to format your comments, the best way is to use the Doxygen tags inside the standard comments tags (refer to Doxygen documentation for details).
The Visual Studio compiler does not send any warning about these, but, unfortunetly, these tags appear in the tooltips in the editor.
Below is a sample with “\n” tag for the line feed and, “\code” and “\endcode” to show the encapsulated text like code pattern in the output help file.
/// <summary>
/// Load a config XML file.
/// \n\n XML file format:
/// \code
/// <Parent>
///     <Child Name='ID' Type='Type1' />        
///     ...
/// </Parent>
/// \endcode
/// </summary>

 Visual Studio® and Html Help Workshop® are registered trademarks of Microsoft.

How to Configure the Linux Grub2 Boot Menu the Easy Way

Installing Grub Customizer

The tool in question is called Grub Customizer, created by Daniel Richter. He’s provided a PPA to make installing the tool quick and easy.

Open a terminal window (Ctrl+Alt+T or Applications > Accessories > Terminal) and type in the following commands.

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get updatesudo apt-get install grub-customizer

GrubCustomizer will now show up in the Applications > System Tools menu.

Or you can open it from the command line.

gksudo grub-customizer

Hide Boot Menu Options

Over time, your boot menu can get cluttered with old versions of the Linux kernel. In a previous article, we showed you how to remove these manually; Grub Customizer makes this process much easier.

When Grub Customizer starts up, you’ll see a list of all the items that show up in the boot menu.

To hide entries that you don’t want to see anymore, simply uncheck the checkbox next to them.

Click the Save button at the top-left to make your changes permanent.

You can uncheck entire sections if you don’t want Grub2 to probe for new operating systems, or give you the option to test your computer’s memory.

Note that, unlike the manual method, this process does not actually remove the kernels from your computer, it just hides them from the boot menu.

Customize Grub Behavior

Grub Customizer can do much more than hide boot menu entries! Opening up the Preferences window lets you customize almost every aspect of Grub.

For example, you can set the default boot menu entry to a certain position, or a specific item.

If you’re bored by the default white-text-on-black-background look of Grub2, you can add a background image and customize text colors.

And, for Grub2 experts, you can set advanced settings much more easily than by editing the configuration files manually.

Grub Customizer is a great addition to any Linux installation that uses Grub2!

Thanks to How-To Geek commenter Hugues for recommending this program!See this Ubuntu Forums post for more detailed information on Grub Customizer.

Source: How to Configure the Linux Grub2 Boot Menu the Easy Way