编译并使用APE官方解码包

还是APE官方解码包。他们的源码包特别恶心,C++写的类库,编译版本不对报错,编译器不一样报错,编译器没错,但不知道他们源码历史,也有可能通不过,而且他们的源码一定是最新版的编译器编的,所以为了编译他们的文件,刚推出VS2019,VS2022就得下。好在这个源码包相对还是很好编译的。

他们的解码程序也很怪,解码包里有两个示例,一个在CONSLE文件夹里,一个在SAMPLE文件夹,SAMPLE是导出DLL中的函数来解码,这个我不大会,只不过照抄下来很容易通过,解码出来的是数据块,就是wav去掉文件头后的PCM编码部分。console的示例程序倒是可以直接导出WAV文件。但是照抄用CONSLE的程序实在太麻烦了。

首先,CONSLE文件夹里的程序引用的MACLIB库的源码工程。你单纯引用他们的头文件和MACLIB,不好意思,好多函数根本就用不了,会报错,LNK2001之类。

我的方法是,头文件照常引用,包含目录用SOURCE\MACLIB,然后把MACLIB文件夹下的CPP都拷到工程所在目录。然后全部添加到工程中,最后提示什么.obj已经定义之类,移除掉circleBuffer.cpp之后,问题解决,剩下的就是修改源代码了,很恶心的是,源码中的回调函数原型不能修改,由于源码是在命令行界面下运行的,所以回调的进程就没办法显示。看以后能不能学点东西,是不是可以解决这个问题。

我测了下这两种方式解压同一文件的速度,DLL 导出函数的SAMPLE用时52秒,console用了65秒。不知道同样的一个源码包,解压程序的速度为什么差这么多,事实上console的程序更长,好像更完整。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值