mciSendString 占用句柄
我想用mciSendString来播放音乐,很简单的几句话,发现调用一次后,里面就有句柄未释放,如果循环调用,情况会更糟,不知道是否我哪里没有写正确,现在帖上来,希望大家帮我分析下.谢谢.
CString s, s2; s2 = _T("D:\\aa.mp3"); while (1) { s.Format(_T("open \"%s\" type MPEGVideo alias OpenFile"), s2); MCIERROR me=mciSendString(s, NULL, 0, 0); mciSendString(_T("Play OpenFile wait"), NULL, 0, 0); mciSendString(_T("close OpenFile"), NULL, 0, 0); }CString strPath("");MCI_OPEN_PARAMS mciOP;mciOP.lpstrDeviceType = NULL;mciOP.lpstrElementName = strPath; // MP3文件所在路径DWORD dwReturn = mciSendCommand(NULL, MCI_OPEN, MCI_OPEN_ELEMENT | MCI_WAIT | MCI_OPEN_SHAREABLE, (DWORD)(LPVOID) &mciOP);MCIDEVICEID wID;if (dwReturn == 0){ wID = mciOP.wDeviceID;}else{ wID = NULL;}MCI_PLAY_PARMS mciPP;DWORD dw = mciSendCommand(wID, MCI_PLAY, MCI_NOTIFY, (DWORD)(LPVOID)&mciPP);