各位请帮帮忙,这个问题我调了两天了,很郁闷啊!
编译链接通过,运行能输出为wav文件,且输出的朗读内容正确无误!
但是运行后弹出“0x004025ee"指令引用的"0x00000080"内存。该内存不能为"read"的窗口警告。
估计是CString cstrPathFileName 在SPBindToFile 第一个参数的问题,但我试了很多方法都没搞定!
       CString cstrPathFileName;
      CFileDialog mFileDlg(FALSE,"wav",NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, 
   "wav", AfxGetMainWnd());//默认将输出文件设置为wav
      int iN = mFileDlg.DoModal();//“另存为”对话框      if(iN == IDOK)   
 cstrPathFileName = mFileDlg.GetPathName();  //获取要输出的文件的路径和文件名
      else if(iN == IDCANCEL) {return ;}
        ...
         ...
     hr = SPBindToFile(cstrPathFileName ,SPFM_CREATE_ALWAYS,  //cstrPathFileName 的类型        &cpWavStream,&OriginalFmt.FormatId(),        OriginalFmt.WaveFormatExPtr() );附上SAPI中SPBindToFile定义:
SPBindToFile(
   LPCWSTR               pFileName,
   SPFILEMODE            eMode,
   ISpStream           **ppStream,
   const GUID           *pFormatId = NULL,
   const WAVEFORMATEX   *pWaveFormatEx = NULL,
   ULONGLONG            *ullEventInterest = SPFEI_ALL_EVENTS
);