返回首页

我写了一个MFC程序,点击一个按钮来播放music.The程序运行在公司的电脑,但在我的电脑,它得到一个奇怪的错误,引发了断点。我混淆两天。感谢您的帮助!
代码:

void Cmci_Test1Dlg::OnBnClickedButton1()

{

	// TODO: Add your control notification handler code here



	char buf[128];

	MCI_OPEN_PARMS mciOpen;

	MCIERROR mciError;

	mciOpen.lpstrDeviceType ="mpegvideo";

	mciOpen.lpstrElementName ="F:\\TDDOWNLOAD\\Rolling In The Deep.mp3";

	mciError = mciSendCommand(0,MCI_OPEN,MCI_OPEN_TYPE | MCI_OPEN_ELEMENT,(DWORD)&mciOpen);

	if(mciError)

	{

		mciGetErrorString(mciError,buf,128);

		MessageBox(buf,"ERROR");

	}

	else{

		UINT DeviceID = mciOpen.wDeviceID;   

		MCI_PLAY_PARMS mciPlay;   

 

		mciError = mciSendCommand(DeviceID, MCI_PLAY, 0,(DWORD)&mciPlay); 

		if(mciError)   

		{ 

			mciGetErrorString(mciError,buf,128);     

			MessageBox(buf,"ERROR");     

		}   

	}

}


错误: Windows已经引发了mci_Test1.exe断点。
这可能是由于腐败的堆,这表明在mci_Test1.exe错误,或任何已加载的DLL。

这也可能是由于用户按F12而mci_Test1.exe具有焦点。

输出窗口可能有更多的诊断信息。

回答

评论会员:游客 时间:2012/02/07
minikupe:我已经想通了这个问题。原因是,我在我家的电脑安装了一个视频播放器。当我卸载播放器,程序运行正常。感谢你的帮助:理查德MacCutchan
既然我们无法看到您的计算机上的输出窗口,它是不可能的猜测可能会发生。使用调试器来收集一些有关细节的问题,并提供有关错误和任何相关的信息的完整信息:奥尔伟业
评论会员:游客 时间:2012/02/07
嗯,首先要检查...你确定该文件在系统中存在在家吗?此外,您的设备类型指定"mpegvideo"...你肯定是有效的,一个mp3文件吗?其次...如果你看一下mciSendCommand文件()imgsrc=]...它指出错误代码是返回的DWORD低位字的高位字包含的驱动器标识符(如设备的具体)。,mciGetErrorString()可能会要求你筛选出的高阶字(虽然功能可能已经这样做了,在内部)。换句话说...{C}