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. hadoop文件写入
  2. 【风控模型】融合模型Bagging构建信用评分卡模型
  3. 【转】python 和 cx_Oracle 的使用
  4. java小编程----四数之和
  5. 【要闻】Kubernetes无用论诞生、Elasticsearch 7.6.2 发布
  6. html网页响应时间调试,HTML5 使用performance.now衡量Webworker的响应时间
  7. Sharepoin学习笔记—架构系列--08 Sharepoint的数据模型(DataModel)、数据管理(Data Management)与查询(Query System)
  8. iis 日志 post数据_云原生日志的趋势(1):logscape和logiq
  9. mysql case默认_MySQL知识整理10.1—存储过程和函数
  10. c语言课程设计,学生信息管理系统
  11. 信用卡+购物商城+ATM管理练习
  12. 5.1.3 5GMM sublayer states
  13. Windows Internet Information Services(IIS) 与 inetpub 文件夹
  14. 时间序列学习 经典案例(3)离散傅里叶变换DFT(案例:时序去噪)
  15. 小队pkc++_骑士小队2人金属第一印象
  16. 知三维空间中任意旋转抛物面的顶点和焦点坐标,建立该旋转抛物面方程
  17. maven 指令之package 和install的区别
  18. 代购网店:iPad 2最快后天抵沪
  19. 聊聊程序员的核心能力
  20. 番茄工作法,定时提醒小程序,番茄计时器

热门文章

  1. tomcat结构分析
  2. linux 压缩 解压 命令大全
  3. 上海松江大学城学计算机,上海松江大学城有几所学校?
  4. Python要了解哪些编程基础 如何学Python比较好
  5. 炎热的夏天过去了,老司机用Python带你爬爬哪个城市最热
  6. retrofit2 发送json数据_SQLmap JSON 格式的数据注入
  7. rocketmq python 一个进程订阅多个topic_玩转不同业务场景,这些RabbitMQ特性会是得力助攻...
  8. vue 增加js日志输出文件_Vue.JS项目导入导出JSON文件的方案之一,其他项目也可参考...
  9. gis 大屏_胡中南:Web端GIS技术新进展 | (PPT+速记)
  10. Bash 脚本:`(反引号)运算符和 $()的使用方式