程序员在写程序时经常需要在源程序里写一些注释,以备自己或他人以后再看时方便理解,程序的注释格式有多种,而 JavaDoc 的注释格式现在似乎更为流行,不仅 Java 语言在使用它,其它语言如:Javascript, C/C++, Php 等流程语言也越来多地采用 JavaDoc 注释方式。有了注释格式,当然需要有一个注释格式分析工具能够对注释内容进行清晰。Doxygen 便是这个方便的注释分析工具,它可以非常方便地将源程序里的按 JavaDoc 格式注释的内容提取出来,形成各种需要的帮助手册(如:Html格式,Man 格式,RTF格式等),因为doxygen是如此好用,以至于很多开源的软件都在用它,象比较著名的ACE项目的接口帮助手册就是由doxygen生成的,当然还有更多的使用doxygen工具的项目(你可以在 http://www.stack.nl/~dimitri/doxygen/projects.html 上发现如此多的软件项目在使用它)。
因为本人开发了一套基于C语言的支持 Unix/Windows 的网络通信及服务器框架的函数库(名叫:ACL,http://acl.sourceforge.net/),有一些朋友和同事在用它,大家在使用ACL 库时既感到了它的强大、高效,同时又在不断地抱怨接口文档的缺乏及查找的不方便,本人对此也深感痛觉,于是痛下决心,经过相当一段时间的努力,终于在 ACL的所有对外头文件中添加了 JavaDoc 格式注释,于是非常高兴地从 doxygen 的主站(www.doxygen.org)下载了win32平台的安装程序(版本为:1.5.8),然后按使用说明(其实非常简单)将ACL的头文件生成了HTML格式帮助文档,但可惜的是,打开这些HTML页面时却发现是一大堆乱码,原因是doxygen生成的文档默认采用 utf-8编码,而我的文档注释采用的是GB2312的编码,于是修改 doxyen配置,将 INPUT_ENCODING 修改成 GB2312, 将 DOXYFILE_ENCODING 设置成 UTF-8,然后再生成时 doxygen 在分析头文件时报错说无法进行编码转换,既然 doxygen 无法进行编码转换,那只好自己写个转换器了,于是亲手写了个WINDOWS下的编码转换器,将GB2312直接转换成UTF-8, 再由 doxygen 从 UTF-8 的源文件生成UTF-8格式的HTML文档。
至于将ACL的头文件由GB2312转换成UTF-8的过程也是曲折的,开始本人用的转换器的库是 iconv.lib, 转换完发现文件的内容总是不全,不知是不是该库本身的问题还是本人使用不当造成的,于是一不做,二不休,编码转换库也用源代码进行编译运行(好在本人曾经做过邮件系统,在字符集编码方面不乏源代码,随手粘来一段代码贴在程序里),OK,转换成功,所有的头文件的中文注释均由原来的GB2312转换成 UTF-8了。当然在用 doxygen 生成HTML文档时,别忘了将 INPUT_ENCODING 设置成空,意思是说无需 doxygen进行字符集编码转换(通过跟踪 doxygen 的源代码,发现只要将 INPUT_ENCODING 设置为空,则它不会对注释文档进行字符集编码转换---这样也好,免得它总是转错,其实它的源程序里是用 iconv.lib 进行转换的,不知转换不成功的原因是否也与 iconv.lib 有关)。
其实, doxygen 在对中文的字符集转换时所出现的问题在以前的旧的版本并未出现过(那是因为原来还比较土,根本就不进行转换,哈,看来少做有时也有好处,至少还能用),只是在一些比较新的版本(包括当前的1.5.8)都存在这类问题(将中文由GB2312转换成UTF-8时会失败),本人本想采用旧的 doxygen 生成HTML帮助文档,但最终经不住新版的诱惑:更好的CSS控制,更优美的外观,更方便的索引方式,等等。于是自写了个工具软件,进行了字符集转换。(如哪位朋友需要,可以发邮件至 zhengshuxin@hexun.com 索取这个小软件,等本人将其做完善后再放在网上)。
字符集转码工作做完了,但另一个问题又出现了,本人的函数库都是由C语言完成的,因为没有象C++式的命名空间,所以为了防止与他人的代码冲突,所有的函数名前都加了前缀 acl_, 所有的结构前都加了前缀 ACL_, 这样问题就来了,本来用 doxygen 生成的HTML文档是有按字母索引、排序功能的,但因为我的函数前都有 acl_ 字样,这样所有的函数都堆在一个 a 开头的排序里,于是更加郁闷。怎么办?得,还得自己写工具进行转换,第一步:先用工具将所有中文注释的头文件转换成UTF-8格式的;第二步:将函数名前的前缀 acl_ 转换成后缀 _acl(如:原来的一个函数 acl_vstream_gets 前缀变后缀后应为 vstream_gets_acl, 结构:ACL_VSTREAM 则变为 VSTREAM_ACL);第三步:用 doxygen 将第二步生成的头文件生成HTML文档;第四步:用自写工具将函数名、结构类型中的字符串由后缀转前缀(如:vstream_gets_acl->acl_vstream_gets, VSTREAM_ACL->ACL_VSTREAM),这样就一切OK了,最终生成的HTML帮助文档都是UTF-8格式的,可以按字母序进行排列的函数接口帮助文档了。(题外话:象顶顶大名的 glib 库,虽然文档注释格式是 JavaDoc 格式的,但它并没有使用 doxygen 工具生成帮助手册,估计原因可能和我一样,它是一个C库,为了避免与别人冲突,都有前缀g-, 如果用 doxygen就无法按首字母进行排序查看,所以 glib 的开发小组自己开发文档生成工具)。
您可以参看 http://acl.sourceforge.net/ 看一下ACL库的在线帮助文档。
此外,此文档还有一个小小的缺陷,那就是在搜索栏里,如果你要查acl_vstream_xxx 类的函数时,需要输入 vstream_xxx, 而不是 acl_vstream_xxx, 并且查得的结果也是 vstream_xxx_acl 格式(当你点其链接时的结果是正确的),主要是因为 doxgen 生成ACL帮助文档的全文索引时的源文档都是 vstream_xxx_acl ---即以 _acl/_ACL 为后缀的,目前主要是对其索引文档还不太熟悉,得有时间再完善这点吧。当然,希望 doxygen 能将我所遇到的问题都解决,这样也就不再需要那个转换工具了。
个人微博:http://weibo.com/zsxxsz
分享到:
相关推荐
《doxygen官方手册1.8_中文手册1.6_doxygen使用详解.rar》是一个压缩包,包含关于doxygen的重要资源,包括《doxygen使用详解》、《doxygen中文手册v1.63》以及《doxygen_manual-1.8.13》三份PDF文档。这些资料是学习...
《程序文档自动生成工具Doxygen使用手册》是针对软件开发者设计的一款强大工具,它能够自动为C/C++, Java, C#等编程语言的项目生成详细、结构化的文档。这款工具的核心价值在于它能够显著减轻程序员在编写代码的同时...
**doxygen中文手册与源码**是一份专为软件开发者准备的资源,旨在帮助他们更好地理解和使用doxygen这款强大的开源文档生成工具。doxygen能够自动从源代码中抽取结构信息,生成高质量的API文档,支持多种编程语言,...
Doxygen是一个广泛使用的文档生成工具,特别适用于C、C++、Java、Objective-C和Python等编程语言。它能够从源代码中提取注释并生成整洁的文档。doxygen中文手册为用户提供了详细的指南,涵盖了安装、使用、配置等...
**doxygen工具详解** ...通过上述步骤,你可以轻松利用Doxygen为你的项目生成专业且全面的帮助文档,提高团队的开发效率和代码质量。记得将生成的文档与团队成员共享,以便他们更好地理解和协作。
例如,您可以使用 Doxygen 生成 C++ 项目的技术文档,也可以使用 Doxygen 生成 Java 项目的用户手册。 结论 Doxygen 是一个非常有用的工具,可以帮您生成漂亮的技术文档,减少工作负担。它支持多种程序语言和檔...
1,它能从一系列源文件中生成在线浏览文档(HTML形式)或离线参考手册(LATEX形式)。还支持RTF(MS-Word),PostScript,带超链接的PDF,压缩的HTML和Unix man页。文档是直接从源文件中提取出来的,这使得文档与...
在本章节中,我们将会了解到 doxygen 的基本功能、特点以及如何开始使用该工具来生成高质量的文档。 - **功能与特点**: - 支持多种编程语言:包括 C/C++、C#、Objective-C、PHP、Java、Python、VHDL、Fortran 和 ...
Doxygen是一款强大的、开源的文档生成工具,能够从源代码注释中自动提取并构建出详尽的文档。它不仅支持多种编程语言,如C、C++、Java、Objective-C、IDL等,而且还具备一定程度上对PHP和C#的支持。通过其灵活的配置...
这些标记将帮助Doxygen生成结构化的文档,让读者能快速理解代码功能和使用方式。 此外,Doxygen还支持输入和输出多种格式,如HTML用于网页浏览,PDF用于打印和离线阅读,XML用于进一步处理,以及CHM(Windows帮助...
Doxygen是一款强大的文档自动生成工具,能够从C、C++、Java等编程语言的源代码中提取文档信息,自动生成帮助文档、API资料等。这使得开发人员能够在编写代码的同时,通过标准的注释方式轻松地维护和创建高质量的技术...
`doxygen`是一款广泛使用的开源文档生成工具,它能够自动从源代码中提取信息,生成结构化的、易于阅读的API文档。这款工具支持多种编程语言,包括C++, C, Java, Python, Objective-C, PHP, C#, Fortran等,使得...
包含以下内容: doxygen 1.63 中文手册 doxygen_manual-1.7.1.pdf doxygen-1.7.1-setup-win.exe doxygen-1.7.1.src.tar.gz doxygen使用详解.pdf
windows下使用doxygen为C C++程序生成中文文档 1.html文件讲解怎么使用 2.需要的一些工具 3.所需要的批处理文件 步骤: 1.阅读 使用doxygen为C/C++程序生成中文文档html文件 2.安装doxygen.rar,graphviz.rar ...
Doxygen是一款文档生成工具,它能够将程序源代码中的注释转换成结构化的文档,包括说明文档和API参考手册,从而帮助程序员节省整理文档的时间。Doxygen支持多种编程语言,包括C/C++、Java、Objective-C和IDL等。使用...
要使用doxygen生成文档,你需要运行doxygen命令并指定配置文件或输入目录。例如,在命令行中: ```bash doxygen doxygen.conf ``` 这将读取配置文件并生成指定的文档输出。 ### 示例项目 `doxygenTest.rar`可能...
总的来说,"doxygen生成样例.7z"提供了一个实践doxygen的实例,帮助用户了解如何利用doxygen自动生成代码文档,提高代码的可读性和维护性,这对于任何软件开发团队来说都是非常有价值的。无论是个人开发者还是团队...
可以按照doxygen规定的格式编写代码注释,然后利用doxygen工具直接生成参考文档
Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,完全支持C、C++、Java、Objective-C和IDL语言,部分支持...Doxgen可以从一套归档源文件开始,生成HTML格式的在线类浏览器,或离线的LATEX、RTF参考手册。