当前位置: 首页 > news >正文

doxygen制作接口文档

系列文章目录

文章目录

  • 系列文章目录
  • 前言
  • 一、下载
  • 二、安装
    • 三、代码注释
    • 四、使用doxygen生成文档

前言

每次手动写接口文档太痛苦了,现在福利来了–doxygen
Doxygen是软件开发中广泛使用的文档生成器工具。它自动从源代码注释生成文档,解析有关类、函数和变量的信息,以生成HTML和PDF等格式的输出。通过简化和标准化文档过程,Doxygen增强了跨不同编程语言和项目规模的协作和维护。支持c++、Java、C#、PHP、Fortran
在这里插入图片描述

一、下载

Doxygen下载地址
在这里插入图片描述

二、安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、代码注释

在这里插入图片描述
接口代码头文件

#ifndef _CONGIG_DATA_H_
#define _CONGIG_DATA_H_#include "RegisterControl_Exports.h"
#include <iostream>
#include <fstream>
#include <sstream>
#include <map>
#include <vector>
#include "nlohmann/json.hpp"using namespace std;
using nlohmann::json;/// @brief: 这个类处理json格式数据
/// @author:xxxxxx
/// @version: v1.0
/// data:2024-8-8
namespace ConfigJsonData {class RegisterControl_API ConfigData{public:ConfigData();~ConfigData();	public:/// @brief 从文件中加载json数据/// @param fileName 文件名/// @return 无 注:内部输出加载json数据是否成功void loadJsonFile(const string& fileName);/// @brief 从字符串中加载json数据/// @param jsonString 输入json格式字符串/// @return 无 注:内部输出加载json数据是否成功void loadJsonString(const string& jsonString);/// @brief 内部构造json对象/// @param 无/// @return 返回json对象json toJson();/// @brief 序列化:把json数据转成ConfigData对象/// @param 无/// @return 无 注:如果转换失败,内部处理转换失败的异常void fromJson();/// @brief 把json数据保存到文件/// @param fileName 保存文件名/// @return 无 注:如果转换失败,函数内部处理转换失败的异常void saveToJsonFile(const string& fileName);/// @brief 把json数据保存到字符串/// @param 无/// @return 无 注:如果转换失败,函数内部处理转换失败的异常void saveToJsonString();public:// Getter 和 Setter 方法 /// @brief 获得json格式字符串/// @param 无/// @return 返回json格式字符串string getJsonString() { return _jsonString; }/// @brief 获得json对象/// @param 无/// @return 返回json格式字符串	const json& getJsonData() const { return _jsonData; }/// @brief 获得json对象/// @param jsonData json对象/// @return 无 设置json对象	void setJsonData(const json& jsonData) { _jsonData = jsonData; }/// @brief 获得json格式配置文件名/// @param 无/// @return string 返回文件名	const string& getFileName() const { return _fileName; }/// @brief 设置json格式配置文件名/// @param fileName 设置保存文件名/// @return 返回文件名void setFileName(const string& fileName) { _fileName = fileName; }/// @brief 获取ADC类型:ADC_82v48,ADC_ak8478,ADC_ak8446/// @param 无/// @return  返回ADC类型const string& getAdcType() const { return _adcType; }/// @brief 设置ADC类型:ADC_82v48,ADC_ak8478,ADC_ak8446/// @param adcType ADC类型/// @return string ADC类型void setAdcType(const string& adcType) { _adcType = adcType; }/// @brief 获取fpga信息/// @param 无/// @return 返回fpga信息map<string, int>& getFpgaMap()  { return _FpgaMap; }/// @brief 设置fpga信息/// @param fpgaMapfpga信息/// @return 无void setFpgaMap(const map<string, int>& fpgaMap) { _FpgaMap = fpgaMap; }/// @brief 获取相机信息/// @param 无/// @return 返回fpga信息const map<string, string>& getCameraInfoMap() const { return _cameraInfoMap; }/// @brief 设置相机信息/// @param cameraInfoMap信息/// @return 无void setCameraInfoMap(const map<string, string>& cameraInfoMap) { _cameraInfoMap = cameraInfoMap; }/// @brief 获取增益数据/// @param cameraInfoMap信息/// @return 增益数据const map<string, vector<int>>& getGainMap() const { return _gainMap; }/// @brief 设置增益数据/// @param gainMap 增益信息/// @return 无void setGainMap(const map<string, vector<int>>& gainMap) { _gainMap = gainMap; }/// @brief 获取偏移数据/// @param 无/// @return 返回增益信息const map<string, vector<int>>& getOffsetMap() const { return _offsetMap; }/// @brief 设置偏移数据/// @param offsetMap 偏移数据/// @return 返回增益信息void setOffsetMap(const map<string, vector<int>>& offsetMap) { _offsetMap = offsetMap; }/// @brief 获取索引、bank、寄存器数据/// @param 无/// @return 返回索引、bank、寄存器数据const map<string, map<string, map<string, int>>>& getIndexBankRegMap() const { return _indexBankRegMap; }/// @brief 设置索引、bank、寄存器数据/// @param 索引、bank、寄存器数据/// @return 无void setIndexBankRegMap(const map<string, map<string, map<string, int>>>& indexBankRegMap) { _indexBankRegMap = indexBankRegMap; }private:string _fileName;     ///json文件名string _adcType;      ///ADC类型:ADC_82v48,ADC_ak8478,ADC_ak8446string _jsonString;   ///json字符串map<string, int> _FpgaMap; /// fpga信息map<string, string> _cameraInfoMap; ///相机信息map<string, vector<int>> _gainMap;  ///增益数据map<string, vector<int>> _offsetMap;///偏移数据map<string, map<string, map<string, int>>> _indexBankRegMap;///索引、bank、寄存器数据json _jsonData;  ///json对象};
}#endif

这里只需要注释头文件即可,不需要在注释cpp文件中注释,当然您也可以连同cpp文件一起注释
格式如下:

/// @brief 功能说明
/// @param 参数1说明
/// @param 参数2说明
/// @param 参数3说明
/// @return 返回值说明

四、使用doxygen生成文档

1.配置文档项目路径、文档生成路径、文档项目名称
在这里插入图片描述
2.防止生成的文档包含中文乱码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.生成chm
在这里插入图片描述
4.显示chm
在这里插入图片描述
5.展示效果,注意这里选择你的chm后缀名文件,就会生成目录,如果选择index.html,就不带目录
在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/419556.html

相关文章:

  • PDF怎么在线转Word?介绍四种转换方案
  • 大数据应用型产品设计方法及行业案例介绍(可编辑110页PPT)
  • 【Python零基础学习】Python环境安装和IDE选择
  • 【langchain学习】使用LangChain创建具有上下文感知的问答系统
  • 原神4.8版本升级计划数据表
  • 海南云亿商务咨询有限公司放大电商品牌影响力
  • 用exceljs和file-saver插件实现纯前端表格导出Excel(支持样式配置,多级表头)
  • TIA博途_下载时提示密码错误,但是之前并没有设置过密码的解决办法
  • 使用消息队列、rocketMq实现通信
  • 通过LLM大模型将「白雪公主的故事」转为图数据存储
  • MyBatisPlus 第一天
  • 线程与多线程(二)
  • 算法板子:欧拉函数——求一个数的欧拉函数、线性时间内求1~n所有数的欧拉函数
  • 2024牛客暑期多校训练营8
  • git的一些操作指令
  • 【IT行业研究报告】Internet Technology
  • GLM大模型的机器翻译能力测试
  • 【硬件产品经理】汽车A样设计
  • Ubuntu22.04系统中安装机器人操作系统ROS
  • LeetCode54题:螺旋矩阵(原创)
  • FPGA常见型号
  • 【多模态大模型】FlashAttention in NeurIPS 2022
  • 过滤器doFilter 方法
  • WPF篇(9)-CheckBox复选框+RadioButton单选框+RepeatButton重复按钮
  • 【机器学习基础】线性回归
  • java基础概念12-二维数组
  • 56 锐键交换机开局
  • VR虚拟展厅与传统实体展厅相比,有哪些优势?
  • Vue的事件处理、事件修饰符、键盘事件
  • c++单例实践