如何将.wav文件保存在MFC中(使用文件对话框)

How to save .wav file in MFC (use file dialog)

本文关键字:文件 对话框 存在 wav 保存 MFC      更新时间:2023-10-16
void CRecordToMFCDlg::OnBnClickedButton7()
{
    /*TCHAR szFilter[] = _T("모든 파일(*.wav) || *.wav ||");
    CFileDialog dlg(FALSE, _T("all files"), _T("*.wav"),OFN_HIDEREADONLY| OFN_OVERWRITEPROMPT, szFilter);
    if (dlg.DoModal() == IDOK)
    {
        AfxMessageBox(dlg.GetPathName());
    }*/

    TCHAR szFilter[] = _T("wavefile(*.wav) || *.wav ||");
    CFileDialog dlgFile
    (false, _T("wavefile files"), _T("*.wav"), /*OFN_HIDEREADONLY |*/ OFN_OVERWRITEPROMPT, szFilter);
    if (IDOK == dlgFile.DoModal())
    {
        CString strPathName = dlgFile.GetPathName();

        CFile fScheduleWrite;
        if (!fScheduleWrite.Open
        (strPathName, CFile::modeCreate | CFile::modeWrite | CFile::typeBinary))
        {
            AfxMessageBox(_T("File Write Open Error"));
            return;
        }
    }
}

此代码可以保存文件,但没有数据,我认为此代码无法保存我的录制文件,因为此代码无法接收记录数据。我怎么解决这个问题?需要相关的波文件标头还是格式?请回答我,如有必要,上传标题和代码。请

您所显示的代码从用户获取目标文件名,然后创建文件,但不会尝试将任何数据写入该文件。

fScheduleWrite.Open()成功后,您需要根据需要将WAV数据写入文件。

这里没有人可以为您提供帮助,因为您没有指示您的WAV数据来自何处或如何生成,因此您可以访问它以保存。有很多方法,许多API,许多库,能够产生WAV数据。