はじめまして。
MCIで録音を開始したときに、アプリケーションが止まってしまいます。
デバッグしてみると、
HEAP[hatsuon.exe]: Invalid Address specified to RtlFreeHeap( 2e50000, 36f0000 )
というエラーが出ます。
プログラムは以下の通りです。
//録音開始ボタンを押したときの処理
void CHatsuonDlg::OnButton5()
{
MCIERROR err;
MCI_RECORD_PARMS mciRecordParms;
mciRecordParms.dwTo = 0;
mciRecordParms.dwFrom = 0;
err = mciSendCommand(mciOpenParms.wDeviceID,MCI_RECORD,MCI_RECORD_OVERWRITE,0);
MciErrorCheck(err);
}
開発環境は、Windows 2000、Visual C++ 6.0、MFCです。
MCI、ほとんど触ったことありませんが…
> mciRecordParms.dwTo = 0;
> mciRecordParms.dwFrom = 0;
> err = mciSendCommand(mciOpenParms.wDeviceID,MCI_RECORD,MCI_RECORD_OVERWRITE,0);
設定したmciRecordParmsがどこにも使われていないようですが?
mciOpenParmsがナニモノか…というのも気になりますか…
# http://wisdom.sakura.ne.jp/system/winapi/media/mm8.html
# だとMCI_RECORD_PARMS使っていないんですよね…
mciRecordParmsを使って、再度試してみましたが結果は同じでした…。
mciOpenParmsは、MCI_OPEN_PARMSの変数です。
上記サイトでは、mopと定義されています。
MSDNでこんなの見つけました。
手順として何か抜けていないか確認してみては?
http://msdn2.microsoft.com/en-us/library/ms713226.aspx
ありがとうございました。
開発するPCを変えたら、エラーはでなくなりました。
おそらく、前のPCのメモリーの容量が小さかったためのエラーだと思います。
ツイート | ![]() |