VS 2022配置HDF5文件

该文介绍了如何在VisualStudio2022中配置HDF5环境,包括从官网或百度云下载HDF5文件,设置文件路径,配置编译器环境。接着提供了一个C语言的HDF5数据读写demo,展示如何创建、写入和读取HDF5数据集。

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

下载HDF5文件

可以去官网下载https://www.hdfgroup.org/downloads/hdf5/?1685947943,也可以直接用我的百度云链接链接:https://pan.baidu.com/s/1If9QpER6DS2JbhSO2Ec2ug 提取码:1958

配置环境

记住自己的文件所在目录,我这边是D:\hdf5
VC++目录 —> 包含目录 添加 D:\hdf5\include;
在这里插入图片描述
VC++目录 —> 库目录 添加 D:\hdf5\lib;

在这里插入图片描述
连接器 —> 输入 —> 附加依赖项
添加szip.lib;zlib.lib;hdf5.lib;hdf5_cpp.lib;
在这里插入图片描述
C/C++ —> 预处理器 —> 预处理器定义
添加H5_BUILT_AS_DYNAMIC_LIB
在这里插入图片描述

测试demo

D:\hdf5\HDF5Examples\C\H5D\h5ex_d_rdwr.c

/************************************************************

  This example shows how to read and write data to a
  dataset.  The program first writes integers to a dataset
  with dataspace dimensions of DIM0xDIM1, then closes the
  file.  Next, it reopens the file, reads back the data, and
  outputs it to the screen.

  This file is intended for use with HDF5 Library version 1.8

 ************************************************************/

#include "hdf5.h"
#include <stdio.h>
#include <stdlib.h>

#define FILE            "h5ex_d_rdwr.h5"
#define DATASET         "DS1"
#define DIM0            4
#define DIM1            7

int
main(void)
{
    hid_t       file, space, dset;          /* Handles */
    herr_t      status;
    hsize_t     dims[2] = { DIM0, DIM1 };
    int         wdata[DIM0][DIM1],          /* Write buffer */
        rdata[DIM0][DIM1];          /* Read buffer */
    hsize_t         i, j;

    /*
     * Initialize data.
     */
    for (i = 0; i < DIM0; i++)
        for (j = 0; j < DIM1; j++)
            wdata[i][j] = i * j - j;

    /*
     * Create a new file using the default properties.
     */
    file = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);

    /*
     * Create dataspace.  Setting maximum size to NULL sets the maximum
     * size to be the current size.
     */
    space = H5Screate_simple(2, dims, NULL);

    /*
     * Create the dataset.  We will use all default properties for this
     * example.
     */
    dset = H5Dcreate(file, DATASET, H5T_STD_I32LE, space, H5P_DEFAULT,
        H5P_DEFAULT, H5P_DEFAULT);

    /*
     * Write the data to the dataset.
     */
    status = H5Dwrite(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT,
        wdata[0]);

    /*
     * Close and release resources.
     */
    status = H5Dclose(dset);
    status = H5Sclose(space);
    status = H5Fclose(file);


    /*
     * Now we begin the read section of this example.
     */

     /*
      * Open file and dataset using the default properties.
      */
    file = H5Fopen(FILE, H5F_ACC_RDONLY, H5P_DEFAULT);
    dset = H5Dopen(file, DATASET, H5P_DEFAULT);

    /*
     * Read the data using the default properties.
     */
    status = H5Dread(dset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT,
        rdata[0]);

    /*
     * Output the data to the screen.
     */
    printf("%s:\n", DATASET);
    for (i = 0; i < DIM0; i++) {
        printf(" [");
        for (j = 0; j < DIM1; j++)
            printf(" %3d", rdata[i][j]);
        printf("]\n");
    }

    /*
     * Close and release resources.
     */
    status = H5Dclose(dset);
    status = H5Fclose(file);

    return 0;
}

运行结果

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值