MSDN文档CInternetSession::Close()仅用于说明
在应用程序使用完
CInternetSession对象后调用此成员函数.
对于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)