我写了一个音乐播放器,现在遇到了一个问题,就是用MCI函数只能将同一首歌曲文件打开一次,如果第二次再用MCI_OPEN打开就不行了,而且我在打开之前先关闭了的,请各位帮忙解决一下。我的一些代码如下:DWORD CMusicPlayer::MusicOpen(CString musicPathname)
{
 //用MCI命令打开lpstrpath指定的MP3文件
 MCI_OPEN_PARMS mciOpen;      //定义一个结构体,用于获取文件相关信息
 mciOpen.lpstrDeviceType = NULL;  //结构体重描述设备类型的成员
 mciOpen.lpstrElementName = musicPathname; //结构体中打开文件的路径名字     mciOpen.lpstrElementName = musicPathname;
      DWORD dwReturnOpen = mciSendCommand (NULL, MCI_OPEN, 
      MCI_OPEN_ELEMENT, 
      (DWORD)(LPVOID) &mciOpen);
 //mciSendCommand操作成功返回0
 if(dwReturnOpen == 0)//如果返回0表示打开成功
 {
m_wDeviceIDNow = mciOpen.wDeviceID;  //得到设备的ID号(这个很重要后面也用到)
 }
 else//否则打开失败
 {
m_wDeviceIDNow = NULL;
 }
 
 return dwReturnOpen;}//关闭当前打开的MP3文件
DWORD CMusicPlayer::MusicClose()
{
MCI_GENERIC_PARMS mciGP; //跟前面的播放暂停可以列到一起
DWORD dwReturnClose=mciSendCommand(m_wDeviceIDNow,MCI_CLOSE,MCI_NOTIFY,(DWORD)(LPVOID)&mciGP);
return dwReturnClose;
}