这段程序内存如何释放?
程序介绍:用一个for循环连续调用 涵数:doit(),但是随着调用次数增多,内存耗用也大了,请问没次调用的doit如何释放它?
头文件和全局变量:
// WaveASR.cpp : take a wav file
// reco the content into text
#include "stdafx.h"
#include <windows.h>
// SAPI Header Files
#include <sapi.h>
#include <spdebug.h>
#include <sphelper.h>
#include <spddkhlp.h>
void fnMultiByteToWideChar(WCHAR*, char*);// 申明两个函数
void fnWideCharToMultiByte(char*, WCHAR*);// 申明两个函数
void doit();
char filename[15];
char outfilename[256];
int line;
//////////
CComPtr<ISpStream> cpInputStream;//对象
CComPtr<ISpRecognizer> cpRecognizer;
CComPtr<ISpRecoContext> cpRecoContext;
CComPtr<ISpRecoGrammar> cpRecoGrammar;
CComPtr<ISpRecoResult> cpRecoResult;
CComPtr<ISpPhrase> pPhrase;
WCHAR *pwszText;
// CSpDynamicString pwszText;
HRESULT hr;
char filecontent[1000];
char filecontenttmp[1000];
WCHAR *pwWaveFile = L"file.wav";
//////////
涵数:
void doit()
{
// char filecontent[1000];
// char filecontenttmp[1000];
strcpy(filecontent,"");
strcpy(filecontenttmp,"");
// filename 全局变量
printf("%s %d\n",filename, line );
fnMultiByteToWideChar(pwWaveFile, filename);
hr = cpInputStream.CoCreateInstance(CLSID_SpStream);
CSpStreamFormat sInputFormat(SPSF_22kHz16BitMono, &hr);
hr = cpInputStream->BindToFile(pwWaveFile,
SPFM_OPEN_READONLY,
&sInputFormat.FormatId(),
sInputFormat.WaveFormatExPtr(),
SPFEI_ALL_EVENTS);
hr = cpRecognizer.CoCreateInstance(CLSID_SpInprocRecognizer);
hr = cpRecognizer->SetInput(cpInputStream, TRUE);
hr = cpRecognizer->CreateRecoContext(&cpRecoContext);
hr = cpRecoContext->CreateGrammar(NULL, &cpRecoGrammar);
hr = cpRecoGrammar->LoadDictation(NULL,SPLO_STATIC);
hr = cpRecoContext->SetInterest(SPFEI(SPEI_RECOGNITION) |
SPFEI(SPEI_END_SR_STREAM), SPFEI(SPEI_RECOGNITION) |
SPFEI(SPEI_END_SR_STREAM));
hr = cpRecoContext->SetNotifyWin32Event();
hr = cpRecoGrammar->SetDictationState(SPRS_ACTIVE);
BOOL fEndStreamReached = FALSE;
hr = cpRecoGrammar->SetDictationState(SPRS_INACTIVE);
hr = cpRecoGrammar->UnloadDictation();
hr = cpInputStream->Close();
cpRecognizer.Release();
} // end doit()
问题点数:20、回复次数:1Top
1 楼llmsn("若虚"即"虚怀若谷"!!!)回复于 2005-04-28 16:33:51 得分 20
你不用的时候就适入它呗.Top




