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

为什么线程创建了,里面的功能却没有实现?该如何解决

2012-02-19 
为什么线程创建了,里面的功能却没有实现?线程代码如下:UINTOpenDevice(LPVOIDn){MCI_OPEN_PARMSOpenParms

为什么线程创建了,里面的功能却没有实现?
线程代码如下:
UINT   OpenDevice(LPVOID   n)
{
MCI_OPEN_PARMS   OpenParms;
UINT   wDeviceID;
OpenParms.lpstrDeviceType   =   (LPCSTR)   MCI_DEVTYPE_SEQUENCER;   //MIDI类型
OpenParms.lpstrElementName   =   "E:\\CSDemo\\CSDemo\\res\\Wav\\back1.mid ";
OpenParms.wDeviceID   =   0;
mciSendCommand   (NULL,   MCI_OPEN,   MCI_WAIT   |   MCI_OPEN_TYPE   |   MCI_OPEN_TYPE_ID   |   MCI_OPEN_ELEMENT,   (DWORD)(LPVOID)   &OpenParms);
wDeviceID   =   OpenParms.wDeviceID;

MCI_PLAY_PARMS   PlayParms;
PlayParms.dwFrom   =   0;
wDeviceID   =   OpenParms.wDeviceID;
//   指定从什么地方(时间)播放
mciSendCommand   (wDeviceID,   MCI_PLAY,   MCI_FROM,   (DWORD)(LPVOID)&PlayParms);
return   1;
}
在初始化对话框的时候创建这个线程来播放MIDI文件.为什么直接运行的时候没有播放,但在调试状态下却可以播放?各路高人指点一下.还有,还有什么其它方法播放MIDI文件吗?这样播放,需要1-2秒的延迟.

[解决办法]
你在Return 1 之前加个MessageBox,然后再看看声音出不出来。 :)

另外别忘了Close 你的 Device。

如果不想要延迟,可以用DirectMusic。


[解决办法]
MCI_PLAY_PARMS中的DWORD dwTo;初始化一下

热点排行