libsndfile动态库在VS2010下面的调用
2019独角兽企业重金招聘Python工程师标准>>>
1.创建一个控制台工程。
2.把libsndfile-1.lib文件拷贝到工程里面。在工程选项里面添加lib文件。
3.拷贝头文件sndfile.h到工程目录,添加到工程。
4.编写如下代码:
点击(此处)折叠或打开
- #include <stdio.h>
- #include <stdlib.h>
- #include "sndfile.h"
- void save(short *b1, int n);
- int main(int argc,char *argv[])
- {
- SF_INFO sf_info;
- SNDFILE *snd_file;
- SNDFILE *fpOut;
- SF_INFO sf_info_out;
- short *buf1;
- //float *buf1;
- sf_count_t cout;
- sf_info.format = 0;
- snd_file = sf_open(argv[1],SFM_READ,&sf_info);
- printf ("Using %s.\n", sf_version_string ()) ;
- printf("File Name : %s\n", argv[1]);
- printf("Sample Rate : %d\n", sf_info.samplerate);
- printf("Channels : %d\n", sf_info.channels);
- printf("Sections : %d\n", sf_info.sections );
- printf("Frames : %d\n", (int)sf_info.frames );
- buf1 = (short *)malloc(sf_info.frames *sizeof(short)*2);
- sf_info_out.channels = sf_info.channels;
- sf_info_out.samplerate = sf_info.samplerate;
- sf_info_out.frames = sf_info.frames;
- sf_info_out.format = (SF_FORMAT_WAV|SF_FORMAT_PCM_16|SF_ENDIAN_LITTLE);
- fpOut = sf_open(argv[2],SFM_WRITE,&sf_info_out);
- if(fpOut == NULL)
- {
- printf("open out file failed\n");
- exit(1);
- }
- while( sf_read_short(snd_file, buf1, 480) == 480)
- {
- sf_write_short(fpOut,buf1,480);
- }
- free(buf1);
- sf_close(snd_file);
- sf_close(fpOut);
- return 0;
- }
输入一个*.wav文件,写的也是*.wav文件。
编译通过
运行的时候,提示缺少dll文件,把libsndfile-1.dll拷贝到程序运行的目录。生成的wav文件播放起来声音正常。
转载于:https://my.oschina.net/mickelfeng/blog/330162
libsndfile动态库在VS2010下面的调用相关推荐
- BCB(C++ Builder)创建动态库(DLL,接口导出和调用),动态加载DLL
以前没有封装dll动态库,接触新的工作之后需要用,折腾了一整天,终于搞定了 毕竟是生手,就简单分析注意点和遇到的一些问题及解决方案: (1)首先准备要生成DLL的工程. (1.1)我用的是BCB(C+ ...
- Android开发之动态库调用
发信人: yangAlbert (蓝), 信区: Android 标 题: Android开发之动态库调用 发信站: 武汉白云黄鹤站 (2011年02月20日23:20:51 星期天) 1.编写并生 ...
- C#调用C/C++动态库Dll时几个注意事项:PInvoke错误
经常需要封装一些C/C++函数放入动态库中给C#程序调用,通常情况下直接写成如下形式即可: C#封装调用: [DllImport("depressor.dll")] //错误调用方 ...
- C++中.lib静态库、.dll动态库的生成及调用2
关于动.静态库的介绍及静态库的生成及调用参见:C++中.lib静态库..dll动态库的生成及调用<1>,本文主要介绍基于VS2015平台的动态库dll的生成及调用方法. 一.动态库的生成 ...
- linux平台 使用dlopen接口调用HelloWorld动态库简单实例
动态库(libxxx.so)一种调用方式是在编译的时候的时候指定库名 -lxxx,另一种调用方式是通过dlopen在程序里加载动态库,然后调用相关接口.相关接口比较简单,包括打开动态库,解析库里提供的 ...
- matlab将脚本导出动态库文件.dll,并被python调用
文章目录: 一.matlab将脚本生成动态库.dll文件 1.1 编写简单的脚本函数 1.2 生成dll文件 二.python调用.dll 所使用的的环境如下: 系统:windows10 matlab ...
- 调用opensmile编译的DLL动态库API进行声音特征提取
目录 一.opensmlie : 二.SMILEapi调用方式. 1.创建实例 2.初始化. 3.设置回调 4.写音频数据. 5.配置文件改动 三.详细代码: 最近尝试使用opensmile进行声音特 ...
- VS2019 - 动态库的编写和调用
VS2019 - 动态库的编写和调用 完善自己知识体系的一些内容: 用C++编写的DLL(动态链接库)中,导出类的接口封装方法总结 详解dll的封装,以及三种调用方法(将±×÷封装为例) 1 VS20 ...
- 动态库编译通过,调用动态库函数运行出现undefined symbol
编了一个动态库,写测试程序去调用动态库,程序编译通过,调用动态库里函数出错,通过加上动态库相关依赖库以及 extern"C"声明解决该错误以下,详细说明解决经过: 首先,刚编译好的 ...
最新文章
- hadoop文件写入
- 【风控模型】融合模型Bagging构建信用评分卡模型
- 【转】python 和 cx_Oracle 的使用
- java小编程----四数之和
- 【要闻】Kubernetes无用论诞生、Elasticsearch 7.6.2 发布
- html网页响应时间调试,HTML5 使用performance.now衡量Webworker的响应时间
- Sharepoin学习笔记—架构系列--08 Sharepoint的数据模型(DataModel)、数据管理(Data Management)与查询(Query System)
- iis 日志 post数据_云原生日志的趋势(1):logscape和logiq
- mysql case默认_MySQL知识整理10.1—存储过程和函数
- c语言课程设计,学生信息管理系统
- 信用卡+购物商城+ATM管理练习
- 5.1.3 5GMM sublayer states
- Windows Internet Information Services(IIS) 与 inetpub 文件夹
- 时间序列学习 经典案例(3)离散傅里叶变换DFT(案例:时序去噪)
- 小队pkc++_骑士小队2人金属第一印象
- 知三维空间中任意旋转抛物面的顶点和焦点坐标,建立该旋转抛物面方程
- maven 指令之package 和install的区别
- 代购网店:iPad 2最快后天抵沪
- 聊聊程序员的核心能力
- 番茄工作法,定时提醒小程序,番茄计时器
热门文章
- tomcat结构分析
- linux 压缩 解压 命令大全
- 上海松江大学城学计算机,上海松江大学城有几所学校?
- Python要了解哪些编程基础 如何学Python比较好
- 炎热的夏天过去了,老司机用Python带你爬爬哪个城市最热
- retrofit2 发送json数据_SQLmap JSON 格式的数据注入
- rocketmq python 一个进程订阅多个topic_玩转不同业务场景,这些RabbitMQ特性会是得力助攻...
- vue 增加js日志输出文件_Vue.JS项目导入导出JSON文件的方案之一,其他项目也可参考...
- gis 大屏_胡中南:Web端GIS技术新进展 | (PPT+速记)
- Bash 脚本:`(反引号)运算符和 $()的使用方式