MCDocX – Managed C++ Documentation in XML

This project is intended to be a collection of tools around the topic of XML-style documentation in Managed C++ as proposed by Microsoft (but only supported for C# at this time) and used by Ndoc.

At the moment, this toolset consists of only one commandline utility, but more functionality might be desired later on. If you have any ideas, please let me know.

MCX

MCX is a commandline tool that accomplishes the task of finding and extracting the XML documentation tags from C++ header files.

Assumptions:

  1. This tool will only work on Managed C++, not the new C++/CLI that will be available with the Whidbey release of the Microsoft developer studio.

  2. Any documentation is put in header files. Header files have '.h' ending.

  3. Properties are documented at the 'get' accessor method (MC++ does not have a language construct for a property, only a magic __property keyword on the accessor functions.)

Known limitations:

  1. Implicit static constructors cause problems. Make them explicit as a workaround.

  2. Array parameters not yet supported.

  3. Enumerations not yet supported.

  4. Not all syntactial cornercases have been tested. Please contact me if you find any problems.

Usage:

mcx /AssemblyName name /AssemblyFile asm /OutPath path /...further options

options:

/AssemblyFile file -> compiled .NET assembly file used as reference for reflection assistance.

/ExcludeDir dir -> specify a subdirectory to exclude from docu extraction. Can be used repeatedly to exclude multiple subdirectories

/Verbose -> generates a lot of internal diagnosis messages. Only useful for debugging mcx.

/DefaultSummary -> For mcx troubleshooting purposes generate a default summary for each tag.

COM style documentation in Ndoc

For those who want to publish an API documentation it might be desirable to also document their API for COM developers. I have a working hack into Ndoc and a small set of commandline tools to provide additional COM-style syntax for interface function documentation. If you're interested, please feel free to contact me.