您的位置:首页 > 其它

存储播放列表遇到的问题

2011-03-12 15:19 162 查看
想做个播放器关闭之后自动存储播放列表,下次再自己打开这个播放列表的功能,小小的一个功能,遇到了好多问题。。。

环境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了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: