Buffer overrun detected!是什么原因?该怎么解决
Buffer overrun detected!是什么原因?
我的程序执行到最后时,提示 Buffer overrun detected!,然后就报错退出了
A buffer overrun has been detected which has corrupted the program 's internal state.The program cannot safely continue execution and must now be terminated.
请问应该怎么解决该问题啊!以下是我执行的程序:
void CShareazaApp::GetUpdateFlag(void)
{
CString strHttpName=_T( "http://www.qyjz.net/AutoUpdate.asp?action=Auto "); // 需要提交数据的页面
CString uFlag = _T( "UpdateFlag ");
CString strFormData = uFlag; // 需要提交的数据
CInternetSession sess;
CHttpFile* fileGet;
CString strHeaders = _T( "Content-Type: application/x-www-form-urlencoded "); // 请求头
try
{
fileGet=(CHttpFile*)sess.OpenURL(strHttpName);//打开文件
}
catch(CException* e)
{
fileGet = 0;
//网络状况不稳定
return;
//throw;
}
CString strSentence, strGetSentence;
if(fileGet)
{
DWORD dwStatus;
DWORD dwBuffLen = sizeof(dwStatus);
BOOL bSuccess = fileGet-> QueryInfo(HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, &dwStatus, &dwBuffLen);
if( bSuccess && dwStatus> = 200 &&dwStatus <300 )
{
//写入用户的Cookie信息
BOOL result = fileGet-> SendRequest(strHeaders, (LPVOID)(LPCTSTR)strFormData, strFormData.GetLength());
//////////////////////////////////////////////////////////////////////////////////////////////////////
while(fileGet-> ReadString(strSentence)) // 读取提交数据后的返回结果
{
strGetSentence = strGetSentence + strSentence;
int nLen = strGetSentence.GetLength();
//***************************************
char sBuffer[50]= {0};
sprintf(sBuffer, "%s ",strGetSentence);
char string[10] = {0};
char string1[10] = {0};
strncpy(string1,sBuffer,7);
char *ptr;
ptr = strpbrk(string1, "s ");
我的程序执行到最后时,提示 Buffer overrun detected!,然后就报错退出了
A buffer overrun has been detected which has corrupted the program 's internal state.The program cannot safely continue execution and must now be terminated.
请问应该怎么解决该问题啊!以下是我执行的程序:
void CShareazaApp::GetUpdateFlag(void)
{
CString strHttpName=_T( "http://www.qyjz.net/AutoUpdate.asp?action=Auto "); // 需要提交数据的页面
CString uFlag = _T( "UpdateFlag ");
CString strFormData = uFlag; // 需要提交的数据
CInternetSession sess;
CHttpFile* fileGet;
CString strHeaders = _T( "Content-Type: application/x-www-form-urlencoded "); // 请求头
try
{
fileGet=(CHttpFile*)sess.OpenURL(strHttpName);//打开文件
}
catch(CException* e)
{
fileGet = 0;
//网络状况不稳定
return;
//throw;
}
CString strSentence, strGetSentence;
if(fileGet)
{
DWORD dwStatus;
DWORD dwBuffLen = sizeof(dwStatus);
BOOL bSuccess = fileGet-> QueryInfo(HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, &dwStatus, &dwBuffLen);
if( bSuccess && dwStatus> = 200 &&dwStatus <300 )
{
//写入用户的Cookie信息
BOOL result = fileGet-> SendRequest(strHeaders, (LPVOID)(LPCTSTR)strFormData, strFormData.GetLength());
//////////////////////////////////////////////////////////////////////////////////////////////////////
while(fileGet-> ReadString(strSentence)) // 读取提交数据后的返回结果
{
strGetSentence = strGetSentence + strSentence;
int nLen = strGetSentence.GetLength();
//***************************************
char sBuffer[50]= {0};
sprintf(sBuffer, "%s ",strGetSentence);
char string[10] = {0};
char string1[10] = {0};
strncpy(string1,sBuffer,7);
char *ptr;
ptr = strpbrk(string1, "s ");