2019独角兽企业重金招聘Python工程师标准>>>

1.创建一个控制台工程。
2.把libsndfile-1.lib文件拷贝到工程里面。在工程选项里面添加lib文件。

3.拷贝头文件sndfile.h到工程目录,添加到工程。
4.编写如下代码:

点击(此处)折叠或打开

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "sndfile.h"
  4. void save(short *b1, int n);
  5. int main(int argc,char *argv[])
  6. {
  7. SF_INFO sf_info;
  8. SNDFILE *snd_file;
  9. SNDFILE *fpOut;
  10. SF_INFO sf_info_out;
  11. short *buf1;
  12. //float *buf1;
  13. sf_count_t cout;
  14. sf_info.format = 0;
  15. snd_file = sf_open(argv[1],SFM_READ,&sf_info);
  16. printf ("Using %s.\n", sf_version_string ()) ;
  17. printf("File Name : %s\n", argv[1]);
  18. printf("Sample Rate : %d\n", sf_info.samplerate);
  19. printf("Channels : %d\n", sf_info.channels);
  20. printf("Sections : %d\n", sf_info.sections );
  21. printf("Frames : %d\n", (int)sf_info.frames );
  22. buf1 = (short *)malloc(sf_info.frames *sizeof(short)*2);
  23. sf_info_out.channels = sf_info.channels;
  24. sf_info_out.samplerate = sf_info.samplerate;
  25. sf_info_out.frames = sf_info.frames;
  26. sf_info_out.format = (SF_FORMAT_WAV|SF_FORMAT_PCM_16|SF_ENDIAN_LITTLE);
  27. fpOut = sf_open(argv[2],SFM_WRITE,&sf_info_out);
  28. if(fpOut == NULL)
  29. {
  30. printf("open out file failed\n");
  31. exit(1);
  32. }
  33. while( sf_read_short(snd_file, buf1, 480) == 480)
  34. {
  35. sf_write_short(fpOut,buf1,480);
  36. }
  37. free(buf1);
  38. sf_close(snd_file);
  39. sf_close(fpOut);
  40. return 0;
  41. }

输入一个*.wav文件,写的也是*.wav文件。

编译通过
运行的时候,提示缺少dll文件,把libsndfile-1.dll拷贝到程序运行的目录。生成的wav文件播放起来声音正常。

转载于:https://my.oschina.net/mickelfeng/blog/330162

libsndfile动态库在VS2010下面的调用相关推荐

  1. BCB(C++ Builder)创建动态库(DLL,接口导出和调用),动态加载DLL

    以前没有封装dll动态库,接触新的工作之后需要用,折腾了一整天,终于搞定了 毕竟是生手,就简单分析注意点和遇到的一些问题及解决方案: (1)首先准备要生成DLL的工程. (1.1)我用的是BCB(C+ ...

  2. Android开发之动态库调用

    发信人: yangAlbert (蓝), 信区: Android 标  题: Android开发之动态库调用 发信站: 武汉白云黄鹤站 (2011年02月20日23:20:51 星期天) 1.编写并生 ...

  3. C#调用C/C++动态库Dll时几个注意事项:PInvoke错误

    经常需要封装一些C/C++函数放入动态库中给C#程序调用,通常情况下直接写成如下形式即可: C#封装调用: [DllImport("depressor.dll")] //错误调用方 ...

  4. C++中.lib静态库、.dll动态库的生成及调用2

    关于动.静态库的介绍及静态库的生成及调用参见:C++中.lib静态库..dll动态库的生成及调用<1>,本文主要介绍基于VS2015平台的动态库dll的生成及调用方法. 一.动态库的生成 ...

  5. linux平台 使用dlopen接口调用HelloWorld动态库简单实例

    动态库(libxxx.so)一种调用方式是在编译的时候的时候指定库名 -lxxx,另一种调用方式是通过dlopen在程序里加载动态库,然后调用相关接口.相关接口比较简单,包括打开动态库,解析库里提供的 ...

  6. matlab将脚本导出动态库文件.dll,并被python调用

    文章目录: 一.matlab将脚本生成动态库.dll文件 1.1 编写简单的脚本函数 1.2 生成dll文件 二.python调用.dll 所使用的的环境如下: 系统:windows10 matlab ...

  7. 调用opensmile编译的DLL动态库API进行声音特征提取

    目录 一.opensmlie : 二.SMILEapi调用方式. 1.创建实例 2.初始化. 3.设置回调 4.写音频数据. 5.配置文件改动 三.详细代码: 最近尝试使用opensmile进行声音特 ...

  8. VS2019 - 动态库的编写和调用

    VS2019 - 动态库的编写和调用 完善自己知识体系的一些内容: 用C++编写的DLL(动态链接库)中,导出类的接口封装方法总结 详解dll的封装,以及三种调用方法(将±×÷封装为例) 1 VS20 ...

  9. 动态库编译通过,调用动态库函数运行出现undefined symbol

    编了一个动态库,写测试程序去调用动态库,程序编译通过,调用动态库里函数出错,通过加上动态库相关依赖库以及 extern"C"声明解决该错误以下,详细说明解决经过: 首先,刚编译好的 ...

最新文章

  1. 2021年中国科技的脚步依旧不停 我们将走得更广更深更远
  2. nginx的请求接收流程(二)
  3. Linux挂载windows中的共享目录步骤及问题解决方案(步骤清晰)
  4. 计算机osta试题,OSTA试题库.doc
  5. 通用计算机系统的工作方式,通用计算机操作系统典型体系结构综述
  6. 经验38--新闻内容处理
  7. 业务中台建设与应用_中心牵头建设公司数据中台数据标签库和客户关系图谱库试点应用正式上线...
  8. 对口计算机专业分数线,湖南省2021年普通高校招生本科批(职高对口类)平行一志愿投档分数线公布...
  9. C语言丨函数的递归调用和递归函数
  10. 属猴的人2021年运势预测
  11. ​云原生:重新定义云时代的技术标准 | 凌云时刻
  12. Kepware欧姆龙驱动简介
  13. python音频 降噪_一种基于深度神经网络的音频降噪方法技术
  14. [9i] stuff 和 things 在表示“东西”时的细微区别
  15. 《新唐书·李白传》原文及翻译
  16. 我的叔叔精通计算机英语翻译,人教小学英语精通版 三年级下册Unit3 课文翻译...
  17. pt100热电阻计算公式C语言,牛顿法在Pt100铂热电阻温度计算中的应用特性分析
  18. 蓝牙 sig base uuid_蓝牙,从系统开机说起
  19. 网络安全之暴力破解win7密码
  20. 第一节 细胞是生命活动的基本单位

热门文章

  1. SQL 数据完整性 基础知识
  2. mysql 唯一索引_MySQL学会用索引,让你数据库的查询速度起飞
  3. 两个网站做到同一个服务器,两个网站放在同一个服务器 备案
  4. 【Java常识】7.0 数组实现冒泡排序、选择排序和二分查找
  5. 牛批了,1行python代码就可实现炫酷可视化
  6. gcc离线安装 ubuntu 不用编译_Ubuntu快速搭建C++开发环境(VS Code编辑器)
  7. 整理一下linux系统expand 命令
  8. Trie树合并 + SG函数 ---- BZOJ4730. Alice和Bob又在玩游戏(动态开点Trie 树上全局异或标记 + 合并 + 博弈论)
  9. 思维dp ---- Codeforces Round #711 (Div. 2) - C. Planar Reflections[dp/记忆化搜索]
  10. php双向链表,双向链表的GO语言实现