出错信息为:
Unhandled exception in Recorder.exe(WDMAUD.DRV): 0xC00000005: Access Violation.胸闷呀.
Unhandled exception in Recorder.exe(WDMAUD.DRV): 0xC00000005: Access Violation.胸闷呀.
解决方案 »
- Atl的控件QI的问题
- 怎么实时的监视本机的IP变化
- 关于状态栏提示的问题
- 初学VC者的小问题向各位请教.谢
- 高分求SMB协议的详细说明,主要是Command字段的说明
- VC新手遇到的问题:如何用static方式调用过delphi生成的DLL中的函数
- 这句话什么意思:子窗口运行,堆没有得到,怎么说
- =====求助,奇怪的ODBC错误。。。在线等待。。。
- 小弟是菜菜鸟,请各位大侠帮忙!
- 哪位老大给我举个例子,说明一下程序,进程,模块,线程的区别,虽然理论上我知道,但是我需要具体的举例!!!
- 为社区做一项调查,请大家贡献一下 —— 您认为的较好的专业领域站点和论坛(中、英文);献者有分
- 高分散分, 终于确定内存的问题罪恶之首是XP的SP2, 高兴~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mmReturn = ::waveInOpen( &m_hRecord, AudioDeviceID, &m_Format,(DWORD) hWndGlobal, NULL, CALLBACK_WINDOW ); //use on message to map.....函数代码.
void CRecorderDlg::OnMM_WIM_DATA(UINT parm1, LONG parm2)
{
MMRESULT mmReturn = 0;
LPWAVEHDR pHdr = (LPWAVEHDR) parm2; mmReturn = ::waveInUnprepareHeader(m_hRecord, pHdr, sizeof(WAVEHDR));
if(mmReturn)
{
// waveInErrorMsg(mmReturn, "in OnWIM_DATA()");
return;
} TRACE("WIM_DATA %4d\n", pHdr->dwBytesRecorded);
// if (recordstate)
{
CBuffer buf(pHdr->lpData, pHdr->dwBufferLength);
// if (!recordpaused)
{ //write only if not paused
//Write Data to file
DataFromSoundIn(&buf); } // reuse the buffer:
// prepare it again
mmReturn = ::waveInPrepareHeader(m_hRecord,pHdr, sizeof(WAVEHDR));
if(mmReturn)
{
// waveInErrorMsg(mmReturn, "in OnWIM_DATA()");
}
else // no error
{
// add the input buffer to the queue again
mmReturn = ::waveInAddBuffer(m_hRecord, pHdr, sizeof(WAVEHDR));
// if(mmReturn) waveInErrorMsg(mmReturn, "in OnWIM_DATA()");
// else return; // no error
}
} // we are closing the waveIn handle,
// all data must be deleted
// this buffer was allocated in Start()
delete pHdr->lpData;
delete pHdr;
m_QueuedBuffers--;
}
为什么我不是很清楚.我认为,重要的是You must call this function before freeing the data buffer.
CBuffer buf(pHdr->lpData, pHdr->dwBufferLength);
// if (!recordpaused)
{ //write only if not paused
//Write Data to file
DataFromSoundIn(&buf); }