标签: doxygen

Doxygen:如何正确记录具有 80 个字符限制的 C 结构成员变量?

C struct当您尝试遵守 80 个字符的宽度限制时,是否有适当/推荐的方法向成员变量添加简短的 Doxygen 注释?

例如

// MyStruct.h

#ifndef MY_H
#define MY_H

typedef struct MyStruct
{
  struct in
  {
    int i_;                             ///< A number
    MQTTAsync_connectionLost connLost_; ///< Callback invoked upon loss of
                                        ///< connection
    char c_;                            ///< A letter
  } in_;
} MyStruct;

#endif
Run Code Online (Sandbox Code Playgroud)

上面的内容似乎不是connLost_遵守 80 个字符宽度限制的正确记录方式:它最终会在“字段文档”小节下生成描述,connLost而不是与其对等成员变量一起生成描述。

#ifndef MY_H
#define MY_H

typedef struct MyStruct
{
  struct in
  {
    int i_;                             ///< A number
    MQTTAsync_connectionLost connLost_; ///< Callback invoked upon loss of \
                                             connection
    char …
Run Code Online (Sandbox Code Playgroud)

c doxygen

4
推荐指数
1
解决办法
4804
查看次数

将 Microsoft 的源代码注释语言 (SAL) 与 Doxygen 结合使用?

我正在尝试使用Doxygen来记录一些使用 Microsoft源代码注释语言 (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;
}
Run Code Online (Sandbox Code Playgroud)

对于上面的示例,Doxygen 将解释_Success_()为函数头/原型,从而创建绝对错误的文档。以下是带有不带有函数注释的HTML Doxygen 输出:

有和没有函数注释的比较

通过 …

c++ windows winapi doxygen sal

4
推荐指数
1
解决办法
1013
查看次数

有没有办法让 sphinx 调用脚本或可执行文件作为预构建任务?

我正在尝试使用呼吸将 doxygen 和 sphinx 缝合在一起。

Breath 要求您首先生成 doxygen xml 输出:https ://breathe.readthedocs.io/en/latest/quickstart.html

我不想在单独的步骤中执行此操作。我可以在构建时为我sphinx-build执行吗?doxygen我只需要它先使用一些参数运行此命令。无需编写自定义 sphinx 插件就可以实现这一点吗?

编辑

这有效

# Need to sleep because sometimes doxygen doesnt finish writing files before sphinx runs 
cwd = os.path.dirname(os.path.realpath(__file__))
os.system('doxygen')
time.sleep(3)
Run Code Online (Sandbox Code Playgroud)

doxygen python-sphinx

4
推荐指数
1
解决办法
1093
查看次数

Doxygen和汇编语言

我想使用Doxygen来记录混合使用C和x86汇编语言的遗留代码.汇编语言不是内联的,而是在单独的仅汇编文件中.如何记录汇编语言部分?

documentation assembly doxygen

3
推荐指数
2
解决办法
5633
查看次数

如何为具有长类型名称的"C"变量添加Doxygen注释

我有一个代码

   static const guint8 variable;

我放文件的时候

/**
 * \var static const guint8 variable;
 * \brief This is a variable
 */
static const guint8 variable;

我在生成的文档中没有得到任何输出.但是,当使用简单的变量decleration完成相同的操作时:

/**
 * \var int someothervar;
 * \brief This is some other variable
 */
int variable;

它确实有效

是我在使用中犯了一些错误?

在此先感谢您的帮助,

- elechi

doxygen

3
推荐指数
1
解决办法
2675
查看次数

从doxygen获取类层次结构点文件

Doxygen使用graphviz为我的项目生成一个很好的类层次结构.但我现在想在该图表中添加手动注释.为此,我需要编辑DOT文件.然而,doxygen似乎没有在任何地方输出该文件.它只输出.map文件和.png图像.

如何让doxygen给我点文件?我检查了他们的文档,但找不到任何方法来实现它.当然doxygen必须在某个阶段生成点文件?

doxygen dot graphviz

3
推荐指数
1
解决办法
2322
查看次数

更改Doxygen的消息序列图(MSC)工具

我想知道是否有办法更改默认工具以生成Doxygen的消息序列图表(msc).Doxygen的实际默认工具是mscgen(http://www.mcternan.me.uk/mscgen/),它是一个很好的工具,但我想使用msc-gen(https://sites.google.com/site/mscgen2393 /)这似乎是一个更完整的工具.

我已经尝试在"MSCGEN_PATH =/usr/bin /"创建一个链接到msc-gen(如ln -s/usr/bin/msc-gen ./mscgen),但工具的命令行是不同的.有一种特定的方法可以配置Doxygen来"学习"这个新的工具命令行吗?

charts doxygen

3
推荐指数
1
解决办法
1582
查看次数

Doxygen警告格式以匹配Visual Studio

我将doxygen设置为Visual Studio 2013(C++)中的PostBuild事件,作为对仍需要记录的内容发出警告的方法.

有谁知道是否有可能改变doxygen警告信息的格式

目前doxygen格式是

D:/project/src/MyFile.h:13:警告:未记录复合MyClass.

但如果格式是:

D:\ project\src\MyFile.cpp(63):警告未记录复合MyClass.

然后将错误从输出复制到"错误列表"中,并且双击输出窗口中的错误将直接转到文档丢失的行

当然我可以编写一个应用程序来在后台运行doxygen并转换消息(这就是我将要做的)但是如果可以告诉doxygen通过doxygen配置生成VS样式警告那么我宁愿这样做.

例如

path(line):message

提前谢谢了

doxygen visual-studio

3
推荐指数
1
解决办法
478
查看次数

C++函数指针作为Doxygen中的参数

我有一种情况需要在Doxygen中记录bsearch()签名.签名看起来像这样:

void * __cdecl bsearch (
    const void *key,
    const void *base,
    size_t num,
    size_t width,
    int(__cdecl *compare)(const void *, const void *)
    )
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是如何为指针*比较组成@param命令,因为Doxygen抱怨" 命令@param的参数'比较'在bsearch的参数列表中找不到 "我投入的所有内容.

这是一个独立的实现,所以它不依赖于库签名,但我想如果我这样做:

typedef int(__cdecl *pcompare)(const void *, const void *);
Run Code Online (Sandbox Code Playgroud)

将签名更改为pcompare比较使用标准签名的调用者会出现类型问题.

我对任何解决方案持开放态度,允许我在没有Doxygen警报的情况下记录这个问题.

c++ doxygen bsearch

3
推荐指数
1
解决办法
516
查看次数

JSDoc-指定强制参数语法

我正在使用@JSDoc为我的JavaScript库创建文档。我知道如何指示可选参数。像下面

/*
 * @param {string} [somebody] - Somebody's name.
 */
function sayHello(somebody) {
    if (!somebody) {
        somebody = 'John Doe';
    }
    alert('Hello ' + somebody);
}
Run Code Online (Sandbox Code Playgroud)

但我想指出我的API中的某些参数是必需的。如何使用JSDOC进行显示。我从JSDoc tags-param中找不到任何内容

javascript doxygen node.js jsdoc jsdoc3

3
推荐指数
1
解决办法
2530
查看次数