【发布时间】:2019-11-28 19:05:42
【问题描述】:
我正在尝试使用 Doxygen 记录一些使用 Microsoft 的 Source-Code Annotation Language (SAL) 的 C++ 代码。但是,Doxygen 不能正确解析某些注释宏,例如 _Success_。对于示例 函数注释,_Success_,Doxygen 将此宏误解为函数头/原型。
以下面包含函数注释标记的例子为例:
/**
* @file
* Example with function annotation.
*/
#include <windows.h>
#include <sal.h>
/**
* @brief This is a function.
* @param i a random variable
* @return TRUE on every call.
*/
_Success_(return) // The SAL function annotation.
BOOL function(_In_ int i) {
return TRUE;
}
在上面的示例中,Doxygen 会将_Success_() 解释为函数头/原型,从而创建绝对错误的文档。下面是 HTML Doxygen 输出的样子,with 和 without function annotation:
通过函数注释,Doxygen 还说我记录了一个参数变量i,它不是参数列表的一部分:
C:/.../Source.cpp:9: 警告:命令@param 的参数“i”在成功的参数列表中找不到(返回)
我是否缺少主 Doxygen configuration file 中的配置设置?
还是SAL 和 Doxygen 只是不兼容?
【问题讨论】:
标签: c++ windows winapi doxygen sal