完整代码:#include "winsock2.h"
#include "Wininet.h"
#pragma comment (lib,"Wininet.lib")void main()
{
Sleep(8000); //可以在任务管理器看到使用的内存
HINTERNET hNet = ::InternetOpen("baidu", //当HTTP协议使用时,这个参数随意赋值
PRE_CONFIG_INTERNET_ACCESS, //访问类型指示Win32网络函数使用登记信息去发现一个服务器。
NULL,
INTERNET_INVALID_PORT_NUMBER, //使用INTERNET_INVALID_PORT_NUMBER相当于提供却省的端口数。
0 //标志去指示使用返回句句柄的将来的Internet函数将"不"为回调函数发送状态信息
) ;HINTERNET hUrlFile = ::InternetOpenUrl(hNet, //从InternetOpen返回的句柄
"http://www.baidu.com", //需要打开的URL
NULL, //用来向服务器传送额外的信息,一般为NULL
0, //用来向服务器传送额外的信息,一般为 0
INTERNET_FLAG_RELOAD, //InternetOpenUrl行为的标志
0) ; //信息将不会被送到状态回调函数char buffer[1024] ;
DWORD dwBytesRead = 0;
BOOL bRead = ::InternetReadFile(hUrlFile, //InternetOpenUrl返回的句柄
buffer, //保留数据的缓冲区
sizeof(buffer),
&dwBytesRead); //指向包含读入缓冲区字节数的变量的指针;
//如果返回值是TRUE,而且这里指向0,则文件已经读到了文件的末尾。
::InternetCloseHandle(hUrlFile) ;
::InternetCloseHandle(hNet) ;
Sleep(16000);//可以在任务管理器看到增大后的内存还没有释放
}程序执行功能后,在任务管理器里会增加2MB左右的内存,而且用delete和GlobalFree没有办法释放。我在程序里加了2个Sleep方便大家观察,如果程序不关闭,这增加的2MB该如何释放呢。