点击按钮,产生对话框,里面用了NEW字符,但是加上delete老是出错
{
// TODO: Add your control notification handler code here
// LPCSTR lpszPath = "c:\\comdata";
LPCSTR lpszPath = "c:"; //默认是C盘
SetCurrentDirectory( lpszPath );
static char BASED_CODE szFilter[] = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*||";
CFileDialog FileDlg( TRUE, NULL, NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
szFilter );
FileDlg.m_ofn.lpstrInitialDir = lpszPath ;
GetDlgItemText(IDC_EDIT_POT,m_strPot); //保存罐地址到m_strPot中。
if( FileDlg.DoModal() ==IDOK )
{
CString strFileName = FileDlg.GetFileName( );
CString strFileExt = FileDlg.GetFileExt( ); //后缀名
CString lpstrName = FileDlg.GetPathName( );
m_strSendFilePathName=lpstrName; //显示文件名
CFile fp;
if(!(fp.Open((LPCTSTR)m_strSendFilePathName,CFile::modeRead)))
{
AfxMessageBox("Open file failed!");
return;
}
fp.SeekToEnd();
unsigned long fplength=fp.GetLength(); //得到文件长度
m_nFileLength=fplength;
char* fpBuff1;
fpBuff1=new char[fplength];
fp.SeekToBegin(); //定位到文件开始
if(fp.Read(fpBuff1,fplength)<1)
{
fp.Close();
return;
}
fp.Close();
m_strSendData.Empty();
unsigned long i;
for(i=0;i<fplength;i++) //将文本中的数据显示到文本框之中
{
m_strSendData+=*(fpBuff1++);
}
delete[] fpBuff1;
// UpdateData(FALSE);
}
UpdateData(FALSE);
}
本按钮事件,主要作用是显示一段文本到Edit控件里,因为用到了new字符,所以末尾加个delete[],但是总是出错,出那种内存不能为read的错误,或者什么内部无效堆(invalidHeap)之类搞不清的错误,去掉delete[],文本可以正常使用。但没有delete,总觉不妥,请教各位,delete[]为什么老是出错呢?谢谢.
相关推荐
Repeater中添加按钮实现点击按钮获取某一行数据的方法
如果点击的是编辑按钮,则重定向到一个编辑页面(UpdateEmployee.aspx),并将E_Id作为查询字符串参数传递,以便在编辑页面中加载对应的数据。
Express路由核心解析:GET/POST/PUT/DELETE四大方法原理与实战
HTTP方法是Web通信的语义基石,GET用于安全获取、POST用于创建资源、PUT实现幂等更新、DELETE执行资源移除——这四者构成RESTful API的最小完备集。其底层依赖Node.js的HTTP服务器事件、URL路径正则匹配、中间件洋葱模型三重协作。理解req.query(查询参数)、req.params(路径参数)、req.body(需express.json()等中间件解析)的数据来源差异,是避免404、req.body为undefined、CORS拦截等高频问题的关键。本文聚焦真实开发场景
MFC计算器开发:从状态机设计到交互优化的完整实践
状态机是软件设计中用于管理复杂状态转换的核心模型,其原理在于通过有限状态和事件驱动来确保程序行为的确定性与健壮性。在桌面应用开发领域,这一技术价值尤为突出,能够有效处理用户交互中的异步事件与数据流。以MFC框架下的计算器开发为例,状态机模型完美解决了连续运算、输入缓冲与错误处理等经典难题。通过定义清晰的状态变量(如等待操作数标志、当前运算符)和状态转移逻辑,开发者可以构建出逻辑严密且易于维护的计算核心。这种设计模式不仅适用于计算器,还可广泛应用于需要管理多步骤工作流的桌面工具,如数据录入系统、配置向导等。本
MFC计算器开发全流程:从环境搭建到核心逻辑实现
桌面应用开发是软件工程中的基础领域,其核心在于理解图形用户界面(GUI)与系统底层的交互机制。在Windows平台,MFC(Microsoft Foundation Classes)框架作为经典的C++ GUI开发工具,通过封装Windows API和消息循环机制,为开发者提供了面向对象的编程模型。掌握MFC不仅有助于深入理解Windows桌面应用的运行原理,还能为学习现代框架如WPF/UWP奠定坚实基础。在工程实践中,MFC开发涉及环境配置、资源管理、控件消息处理等关键技术环节,尤其在处理浮点数精度和表达
javascript window.confirm确认 取消对话框实现代码小结
当用户点击确认按钮时,通常表示同意执行操作;而点击取消按钮,则表示用户拒绝执行。confirm()方法接受一个字符串作为参数,该字符串将在对话框中显示为询问信息。


