doxgen生成chm文档和乱码解决方法

本文详细介绍了使用Doxgen配置解决生成CHM文档时出现中文乱码的方法,包括配置文件设置、使用HTMLHelpWorkshop生成CHM文件的步骤,以及Doxgen注释示例。通过正确配置文件编码和输出语言,可以有效避免中文乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

doxgen可用于通过 C/C++ 代码自动生成文档,并且可采用HTML Help WorkShop将生成的文档转换为chm格式
但是在使用其生成chm文档时总是会出现中文乱码解决方法如下:

  • Doxgen配置
  1. 选择Wizard ---> Html ----> prepare for compressed HTML  并钩选 With search function
  2. 选择Expert ---> Project ---> DOXYFILE_ENCODING,输入 UTF-8
  3. 选择Expert ---> Project ---> OUTPUT_LANGUAGE,选择 Chinese
  4. 选择Expert ---> Input ---> INPUT_ENCODING,输入 GBK
  5. 选择Expert ---> HTML ---> CHM_INDEX_ENCODING,输入 GBK (我使用doxgen版本为1.8.2,版本较低时该选项可能不支持)
  • 使用HTML Help Workshop生成chm文件
  1. 文件 ---> 打开 选择工作目录下的 hhp文件(通常情况下为 index.hhp并且位于doxgen设置的工作目录的html目录下)
  2. 选择文件 ---> 编译, 即可在同一工作目录下生成与hhp文件同名的 chm文件
  • Doxgen注释示例
  1. 文件注释
  2. /**
     * \file PQDataSyncInterface.h
     *
     * \brief 电能质量上位机用基于ActiveSync的数据同步接口
     *
     * \history 
     *       Date:  2012.10.12
     *       1. 定义Demo接口 V1.0.X.X
     *
     *       Date:  2012.10.16
     *       1. 确定接口 V2.0.X.X
     */
  3. 结构体、枚举和类注释
    /**
     * \brief 记录名最大长度
     */
  4. 结构体成员和枚举成员注释
    /**
     * \brief 数据同步模块错误码
     */
    typedef enum
    {
        PQDS_ERR_NONE = 0,             
        PQDS_ERR_DEVICE_NOTCONNECT,    /**< 设备未连接 */
        PQDS_ERR_NOEXIT_DEVICE_RECORD, /**< 设备上不存在指定记录 */
        PQDS_ERR_OPEN_DEVICE_RECORD,   /**< 打开设备记录出错 */
        PQDS_ERR_CREATE_PC_RECORD,     /**< 创建PC记录出错 */
        PQDS_ERR_COPY_RECORD_DATA,     /**< 拷贝记录数据出错 */
    
    }PQDS_ErrCode;
  5. 函数注释(如需文字在chm文件中换行显示,需在行尾添加<br>)
    /**
     * \brief 获取设备记录列表
     * \param[in] pRecordList  保存记录列表的缓存
     * \param[in] nMax         缓存可保存记录的最大数量
     * \return 成功 - 返回记录个数<br>
     *         失败 - 返回-1
     */
    PQDS_DLL_API int  PQDS_GetDeviceRecordList( PQDS_Record *pRecordList, const int nMax);

转载于:https://www.cnblogs.com/shanwenbin/archive/2012/10/17/2727405.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值