请问这是哪里泄漏呢?请大神指教,先谢谢了!

大漠飞狐 2015-08-09 08:23:38
这是线程函数,如果这个函数代码为空的时候,没有出问题,所以就是这个函数的代码出问题。下面的 “.Empty()"是后加的,加不加都是一样的错误提示。
UINT ReadWebFile(LPVOID pParam)
{
// ------------------------------读网络内容
CInternetSession session;
CString url = "http://115.159.63.120/mysoft/20150809.txt";

try
{
CHttpFile* pFile = (CHttpFile*)session.OpenURL(url,1,INTERNET_FLAG_TRANSFER_ASCII | INTERNET_FLAG_RELOAD, NULL, 0);
DWORD dwRet;
int row;
CString str;
CString outText[20];
for (int i = 0; i < 20; i++)
outText[i].Empty();
int outTextRow = 0;
pFile->QueryInfoStatusCode(dwRet);
switch (dwRet)
{
case 200:
do
{
row = pFile->ReadString(str);
outText[outTextRow] = str;
outTextRow++;
str.Empty();
} while (row>0);
if (outText[0] == "stop")
{
AfxMessageBox("本软件已停止运行,请下载最新版!");
exit(0);
}
g_GM.m_OKTest.m_nErrorLinkWeb=-1;
pFile->Close();
for (int i = 0; i < 20; i++)
outText[i].Empty();
break;
default:
g_GM.m_OKTest.m_nErrorLinkWeb++;
}
}
catch (CInternetException* pEx)
{
pEx->Delete();
g_GM.m_OKTest.m_nErrorLinkWeb++;
}
session.Close();

}

return 0;
}


下面是程序结束后显示的提示:
Detected memory leaks!
Dumping objects ->
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(156) : {6474} normal block at 0x003C1598, 20 bytes long.
Data: <x 3 > 78 C5 33 10 03 00 00 00 03 00 00 00 01 00 00 00
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(156) : {6473} normal block at 0x003CFAD0, 37 bytes long.
Data: <x 3 > 78 C5 33 10 14 00 00 00 14 00 00 00 01 00 00 00
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(156) : {6472} normal block at 0x003B4E88, 31 bytes long.
Data: <x 3 > 78 C5 33 10 0E 00 00 00 0E 00 00 00 01 00 00 00
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(156) : {6471} normal block at 0x003BBB18, 37 bytes long.
Data: <x 3 > 78 C5 33 10 14 00 00 00 14 00 00 00 01 00 00 00
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\inet.cpp(618) : {6470} client block at 0x003F78F0, subtype c0, 80 bytes long.
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\dumpcont.cpp(23) : atlTraceGeneral - a CHttpFile object at $003F78F0, 80 bytes long
...全文
241 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
大漠飞狐 2015-08-16
  • 打赏
  • 举报
回复
vs2013
二班的码农 2015-08-13
  • 打赏
  • 举报
回复
引用 6 楼 cyjcn1 的回复:
我试过了,没有pFile->Delete(); 我在网上搜了半天,才知道是 delete pFile; 然后可以了。
这是什么编译器,没有Delete方法,编译还能通过,我也是醉了
大漠飞狐 2015-08-12
  • 打赏
  • 举报
回复
要先close 再 delete
大漠飞狐 2015-08-12
  • 打赏
  • 举报
回复
我试过了,没有pFile->Delete(); 我在网上搜了半天,才知道是 delete pFile; 然后可以了。
大漠飞狐 2015-08-12
  • 打赏
  • 举报
回复
以上几点都试了一下,还是一样。
			do
			{
				row = pFile->ReadString(str);
				outText[outTextRow] = str;
				outTextRow++;
			} while (row>0 && outTextRow<20);
测了一下,也只到13,
二班的码农 2015-08-10
  • 打赏
  • 举报
回复
pEx->Delete(); 楼主,为何要释放一个异常对象
快乐鹦鹉 2015-08-10
  • 打赏
  • 举报
回复
do { row = pFile->ReadString(str); outText[outTextRow] = str; outTextRow++; str.Empty(); } while (row>0); 你数组的长度只有20,这个循环没有任何的控制,很容易溢出啊
oyljerry 2015-08-10
  • 打赏
  • 举报
回复
pFile->Close
要关闭一下
「已注销」 2015-08-10
  • 打赏
  • 举报
回复
pFile->Close(); 之前加一句: pFile->Delete();
简单的低级钩子做的应用实例,实现了开机自动启动功能,程序启动后在后台运行,等待本地QQ启动后,开启钩子,记录键盘输入的字符,并保存在D:盘目录下的指定名文档中。关闭QQ时,钩子自动卸载并结束进程。 但是由于是使用的键盘钩子,所以只能简单的抓取键盘所键入的内容,如果是汉字的话则无法显示。 由于使用了Hook技术,并对注册表进行了修改,使用前关闭360等防火墙软件,并使用管理员模式运行。 一次执行后,之后再次开机时,该程序会自动启动。 程序尚有缺陷,如内存泄漏,究其原因是CString应用在多线程中导致,但至今未查到根源所在,希望大神指教,学生不胜感激! 也希望各位多提出宝贵意见,或对本程序进行开发改造。 个人暂时希望改造的几个方面: 1.首是希望能够屏蔽掉360等防火墙的检查。更深层次的改造,希望能够主动杀死360等防火墙的进程。 2.其次是希望能够做成主辅进程相互监视的模式,主进程down掉后,辅进程自动能把主进程启动,辅助进程down掉后,主进程能把辅进程自动启动。 3.其次是希望能够做成真正的隐藏进程的风格,就是能够在任务管理器中隐藏掉进程,其实可以做成服务,但是更希望能够以进程的形式存在。 4.然后很重要的是,希望能够做成自动获取管理员权限的类型,这个一直很想做,但是小菜我水平有限,暂时未对应。 5.希望对应网络开发,现在用钩子钩下来的文字,暂时只是保存在本地的一个txt文件中,希望最终实现把抓下来的内容发送到指定邮箱这样的功能。 暂时就想到这么多吧,希望大家多多提出宝贵意见。 (最终声明:本程序只限用于研究学习开发技术,不得用于研究学习以外的任何目的) 作者:Benjamin Wang 2013-12-02

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧