酷狗歌词Krc批量转换工具Lrc [附转换编码DLL]

经过多天的研究,结合网上一大牛写的C#程序,用Vc++编写一个自己的酷狗歌词转换工具。

程序可以很方便地将酷狗的Krc文件转换为Mp3等播放器用的Lrc文件。

最重要的是,我已经将解码的函数封装在DLL中,出于方便他人使用的原则,内部函数所有的操作都是在内存中进行,通过它,你可以很方便、灵活地地构建自己的解码程序。

1、应用程序篇

界面说明:



下载地址:http://pan.baidu.com/share/link?shareid=506529402&uk=3892350300


2、DLL篇

封装后的DLL公开了以下三个函数,每个函数都有具体的说明,本文程序就是由此DLL编写后打包成为一个exe而成的,可放心使用。(仅用于研究和学习)

/*
 *	此函数将UTF8数据转换为ANSI数据
 *	PCHAR& pBuf	指向输入缓冲区,编码转换后会重写此区域
 *	int iLen	输入缓冲区有效数据长度
 *	返回值		转换后的编码在pBuf中的大小
 */
int Utf8ToAnsi(PCHAR& pBuf,int iLen);

/*
 *	此函数将加密的Krc数据转换为解密的Krc数据(ANSI编码的)
 *	PCHAR pBufKrc	指向原始文件在内存中的地址(即先要加载到内存中)
 *	long iLenKrc	内存中的长度
 *	PCHAR& pBufOut	输出缓冲区的指针
 *	long& iLenOut	输出缓冲区的长度,转换成功后的值为实际转换后的长度
 */
void KrcDecodeAnsi(PCHAR& pBufKrc,long iLenKrc,PCHAR& pBufOut,long& iLenOut);

/*
 *	此函数用于将解码后的Krc文件内容整理为Lrc所需要的格式
 *  PCHAR& pAnsi	Ansi编码的Krc内容
 *	long iLenAnsi	有效长度
 *	PCHAR& pBufOut	Lrc的输出缓存区
 *	long& iBufLen	输出数据的长度
 */
void KrcMakeLrc(PCHAR& pAnsi,long iLenAnsi,PCHAR& pBufOut,long& iBufLen);

DLL下载地址: http://pan.baidu.com/share/link?shareid=706126617&uk=3892350300


3、使用范例:

	FILE* pf = fopen(pFilepath,"rb");
	if (pf==NULL)
	{
		AfxMessageBox("指定文件不存在");
		return;
	}
	long iSize = 0;
	fseek(pf,0,SEEK_END);
	iSize = ftell(pf);
	fseek(pf,0,SEEK_SET);
	PCHAR pBufOld = new CHAR[iSize];
	fread(pBufOld,1,iSize,pf);
	//DLL 处理
	KrcDecodeAnsi(pBufOld,iSize,pBuf,iLen);
        //得到Krc解密后数据
        unsigned long  iLenLrc = 10*1024;
        PCHAR pBufLrc = new CHAR[iLenLrc];
        KrcMakeLrc(pBufOld,iSize,pBufLrc,iLenLrc);
        //将处理后的数据pBufLrc写到文件中,其有效数据长度为iLenLrc

        delete[] pBufOld;
        fclose(pf);

 谢谢翻看。 

2013年8月11日2:05:20               BBDXF



  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值