求问如何阅读别人写的MFC程序

求问如何阅读别人写的MFC程序,第1张

第一件事就先让它跑起来,跑跑,全部功能试一遍再说,再界面和看代

码。(如果编译环境不对跑步起来,也可以只看代码,不过需要费点劲了)

先看初始化如:On

InitDialog()、On

Create()等函数。

再看有没有OnTimer()

程序流程,从入口渐进,逐行进行分析

现看功能,再看结构。。

你要明白,MFC程序是消息驱动的,就好了!!

熟悉流程,然后就是f9断断断,调试看调用堆栈

//写入文件

void CMFCApplication1Dlg::OnBnClickedWriteBtn()

{

// MFC的CFile类写入文件

CFile file(L"1.txt", CFile::modeCreate | CFile::modeWrite )

char *cstr=new char[128]

GetDlgItemTextA(m_hWnd, IDC_EDIT1, cstr,128)

int n = strlen(cstr)

file.Write(cstr,strlen(cstr))

file.Close()

}

//读取文件

void CMFCApplication1Dlg::OnBnClickedReadfileBtn()

{

// MFC的CFile类读取文件

CFile file(L"1.txt", CFile::modeRead)

int n=file.GetLength()

char *pStr = new char[n+1]

file.Read(pStr, n)

pStr[n ] = 0

file.Close()

SetDlgItemTextA(m_hWnd, IDC_EDIT1, pStr)

}

写的都是阻塞的,不过应该影响不大。

由于监控下位机有个心跳数据需要取,所以每一秒发一条命令然后受到状态更新界面上一个CStatic。

现在,MFC程序刚刚启动时还好,资源管理器显示平均CPU占有1.2左右;

不过,啥也不干,就那么放着,一个小时左右后整个电脑都开始卡,这时显示平均CPU占用5左右。到后来,干脆整个程序界面都卡死了,就是Ctrl+Tab回不来了。但是至少后台在打印txt日志的行程还在运行。

从资源管理器来看,平均%5的CPU也不是很夸张啊,但为啥就界面卡死了呢?

而且刚刚运行的时候不是很卡,时间久了就卡了,是啥东西比如句柄用完了没释放导致的吗?


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11731786.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存