存储播放列表遇到的问题

想做个播放器关闭之后自动存储播放列表,下次再自己打开这个播放列表的功能,小小的一个功能,遇到了好多问题。。。

环境VC2008,win32SDK,用MCI播放,unicode编码

1、存到文本文件里的中文全是问号

 

原因:内码问题

 

解决方法:存到硬盘上之前先用一个函数把TCHAR[]格式的中文字符串转换成宽字节(char[])的字符串,然后存到文件里,读的时候再用另一个相反功能的函数转回来。

以下:

WideCharToMultiByte(936,0,Music_List[k].Path,sizeof(Music_List[k].Path),tempP,sizeof(tempP),NULL,0);

 

MultiByteToWideChar(936,0,temp,sizeof(temp),Music_List[k].Path,sizeof(Music_List[k].Path));

 

2、读出来后,明明路径是对的,就是无法播放.

 

原因:路径里的双斜杠//输出成了/,然后读进来时就少了一根斜杠

 

解决办法:

  for(int p=0;p<lstrlen(Music_List[k].Path);p++)
  {
   if(Music_List[k].Path[p]==TEXT('//'))
    Music_List[k].Path[p]=TEXT('/');
  }

 

3、还是不行?

 

原因:输出的时候一个路径占一行,用fgets读进来的时候连带读了一个换行符加在后面

 

解决办法:读进来的时候去掉最后一个字符

lstrcpyn(Music_List[k].Path,Music_List[k].Path,lstrlen(Music_List[k].Path));

 

OK了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值