MCIで録音するには?

解決


とし!  2007-07-18 02:59:56  No: 65674

はじめまして。
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です。


瀬戸っぷ  2007-07-18 09:23:20  No: 65675

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使っていないんですよね…


とし!  2007-07-18 20:32:51  No: 65676

mciRecordParmsを使って、再度試してみましたが結果は同じでした…。
mciOpenParmsは、MCI_OPEN_PARMSの変数です。
上記サイトでは、mopと定義されています。


瀬戸っぷ  2007-07-24 08:46:56  No: 65677

MSDNでこんなの見つけました。
手順として何か抜けていないか確認してみては?

http://msdn2.microsoft.com/en-us/library/ms713226.aspx


とし!  2007-07-24 21:39:06  No: 65678

ありがとうございました。
開発するPCを変えたら、エラーはでなくなりました。
おそらく、前のPCのメモリーの容量が小さかったためのエラーだと思います。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加