栈error,急,求助!!
我用visual studio MFC做了一个程序,有点击按钮,弹出【打开文件】对话框和【保存文件】对话框的功能的按钮,
有时候点击按钮的时候就出现栈error。请问是什么原因,怎么解决?
我是新手,请解说的详细点啊,拜托了。
图片是弹出error的对话框。

还有按钮函数的代码。
Dubug时候,自动中断的中断点。在dbgheap.c文件里,不是我的自己写的文件。
有时候点击按钮的时候就出现栈error。请问是什么原因,怎么解决?
我是新手,请解说的详细点啊,拜托了。
图片是弹出error的对话框。

还有按钮函数的代码。
void FMLogicName::OpenLogicNameFile()
{
CString strFileName;
CStdioFile file;
CFileDialog savedlg(true,
_T("csv"),
_T(""),
OFN_OVERWRITEPROMPT|OFN_CREATEPROMPT,
_T("CSV Files (*.csv)|*.csv")
,NULL);
if (savedlg.DoModal() == IDOK)
{
strFileName = savedlg.GetPathName();
if (!file.Open (strFileName,CFile::modeReadWrite | CFile::typeText))
{
MessageBox(_T("文件被打开"),"FM Radio",MB_ICONWARNING);
return;
}
else
{
CString szFilePath = _T("FM Radio,,");
CString strline;
file.ReadString(strline);
if(strline != szFilePath)
{MessageBox(_T("不是FM Radio文件"),"FM Radio",MB_ICONWARNING);return;}
file.ReadString(strline);
file.ReadString(strline);
file.ReadString(strline);
file.ReadString(strline);
while(file.ReadString(strline))
{
int nIndex = m_listctrl1.GetItemCount();
int comma[2];
int k=0;
for(int i=0; i<strline.GetLength(); i++)
{
if(strline[i]==','){comma[k]=i;k++;}
}
CString str1,str2,cnum,RowNo;
if(nIndex<9)RowNo.Format("00%d",nIndex+1);
else if(nIndex<99)RowNo.Format("0%d",nIndex+1);
else RowNo.Format("%d",nIndex+1);
LPSTR pnum = (LPSTR)(LPCSTR)RowNo;
for(int i=comma[0]+1; i<comma[1]; i++)str1+=strline[i];
LPSTR pstr1 = (LPSTR)(LPCSTR)str1;
for(int i=comma[1]+1; i<strline.GetLength(); i++)str2+=strline[i];
LPSTR pstr2 = (LPSTR)(LPCSTR)str2;
LV_ITEM lvitemAdd = {0};
lvitemAdd.mask = LVIF_TEXT;
lvitemAdd.iItem = nIndex ;
lvitemAdd.iSubItem = 0;
lvitemAdd.pszText = pnum;
if (m_listctrl1.InsertItem(&lvitemAdd) != -1)
{
LV_ITEM lvitem1 = {0};
lvitem1.mask = LVIF_TEXT;
lvitem1.iItem = nIndex ;
lvitem1.iSubItem = 1;
lvitem1.pszText = pstr1;
LV_ITEM lvitem2 = {0};
lvitem2.mask = LVIF_TEXT;
lvitem2.iItem = nIndex ;
lvitem2.iSubItem = 2;
lvitem2.pszText = pstr2;
m_listctrl1.SetItem(&lvitem1);
m_listctrl1.SetItem(&lvitem2);
}
}
}
file.Close();
}
}
Dubug时候,自动中断的中断点。在dbgheap.c文件里,不是我的自己写的文件。
if (!CheckBytes(pbData(pHead) + pHead->nDataSize, _bNoMansLandFill, nNoMansLandSize))
{
if (pHead->szFileName)
{
_RPT5(_CRT_ERROR, "HEAP CORRUPTION DETECTED: after %hs block (#%d) at 0x%p.\n"
"CRT detected that the application wrote to memory after end of heap buffer.\n"
_ALLOCATION_FILE_LINENUM,
szBlockUseName[_BLOCK_TYPE(pHead->nBlockUse)],
pHead->lRequest,
(BYTE *) pbData(pHead),
pHead->szFileName,
pHead->nLine);//debug的中断点在这行
}
else
{
_RPT3(_CRT_ERROR, "HEAP CORRUPTION DETECTED: after %hs block (#%d) at 0x%p.\n"
"CRT detected that the application wrote to memory after end of heap buffer.\n",
szBlockUseName[_BLOCK_TYPE(pHead->nBlockUse)],
pHead->lRequest,
(BYTE *) pbData(pHead));
}
}
...全文
相关推荐
c++栈操作实现,堆栈,出栈,取栈顶元素
用c++写的对栈的小程序,实现了堆栈,出栈,取栈顶元素的操作
用C++实现栈的创建、输出、入栈、出栈
用C++实现栈的创建、输出、入栈、出栈 用C++实现栈的创建、输出、入栈、出栈 用C++实现栈的创建、输出、入栈、出栈
php-error-log:一个以简单方式管理应用程序日志的小型库.. 快速.. 直接!!
PHP错误日志 一个以简单方式管理应用程序日志的小型库.. 快速.. 直接!! 在行中,所做的是在程序员和 PHP error_log()函数之间创建一个抽象层。 那么……它有什么特别之处? 最大的优点是您可以使用error_log()以所有三种可能的方式写入日志,只需更改参数即可。 永远!! 将写入日志,除非消息为空。 快速指南 安装 我们可以通过: " require " :{ ... " elmijo/php-error-log " : " 2.0 " ... } 快速使用 require '../vendor/autoload.php' ; $ logger = new PHPTools \ PHPErrorLog \ PHPErrorLog (); $ logger -> write ( 'probando...' ); 我有多少种写日志的方法? err
栈的四则运算实现及详解
c语言数据结构栈的四则运算(带括号)的实现,里面有解释
Error:java: Compilation failed: internal java compiler error
idea中解决Error:java: Compilation failed: internal java compiler error的问题


