小编Dav*_*zyk的帖子

什么是CInternetSession的必要清理

MSDN文档CInternetSession::Close()仅用于说明

在应用程序使用完CInternetSession对象后调用此成员函数.

CInternetSession的MSDN ::关闭

对于CHttpConnection返回的对象CInternetSession::GetHttpConnection()CHttpFile返回的CHttpConnection::OpenRequest()对象,是否必须手动关闭和删除这些对象?

CHttpConnection::Close()在MSDN上找不到文档,并从中CHttpFile继承了它的Close()方法CInternetFile; 其文档同样无益:

关闭CInternetFile并释放其任何资源.

(对不起,我不能有三个链接)

我的直觉假设是自从CInternetSession::GetHttpConnection()CHttpConnection::OpenRequest()返回指针,并且自从MSDN CHttpConnection表示

你永远不会CHttpConnection直接创建一个对象; 相反,调用CInternetSession::GetHttpConnection,创建CHttpConnection对象并返回指向它的指针.

(对不起,我不能有三个链接)

CInternetSession内部存储CHttpConnection对其生成的引用,并在CInternetSession::Close()调用时清理该对象.这篇MSDN文章支持这一点,该文章未提及连接对象的任何清理和状态

处理CInternetSession对象 - >自动清理打开的文件句柄和连接.

简短的问题

这是必要的:

CInternetSession session(...);
CHttpConnection * connection = session.GetHttpConnection(...);
CHttpFile * file = connection->OpenRequest(...);

... Do stuff ...

file->Close(); …
Run Code Online (Sandbox Code Playgroud)

c++ mfc

5
推荐指数
1
解决办法
1341
查看次数

标签 统计

c++ ×1

mfc ×1