首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

mciSendString 占用句柄解决思路

2012-01-08 
mciSendString 占用句柄我想用mciSendString来播放音乐,很简单的几句话,发现调用一次后,里面就有句柄未释

mciSendString 占用句柄
我想用mciSendString来播放音乐,很简单的几句话,发现调用一次后,里面就有句柄未释放,如果循环调用,情况会更糟,不知道是否我哪里没有写正确,现在帖上来,希望大家帮我分析下.谢谢.

C/C++ code
    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);    }


[解决办法]
这不是被你搞死了么?
C/C++ code
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); 

热点排行