我用CInternetSession类的OpenUrl函数打开图片的Url,用二进制的方法读取,不过保存的结果却不对。哪位大虾能解决?

解决方案 »

  1.   

    bool SaveUrl(LPCTSTR url, LPCTSTR filename)
    {
    HINTERNET hNet = ::InternetOpen("Outlook",
    PRE_CONFIG_INTERNET_ACCESS,
    NULL,
    INTERNET_INVALID_PORT_NUMBER,
    0) ; HINTERNET hUrlFile = ::InternetOpenUrl(hNet,
    url,
    NULL,
    0,
    INTERNET_FLAG_RELOAD,
    0) ; char buffer[10*1024] ;
    DWORD dwBytesRead = 1;
    BOOL bRead=TRUE;
    CFile file;
    file.Open(filename,CFile::modeCreate|CFile::modeWrite);
    while(bRead&&dwBytesRead>0)
    {
    bRead = ::InternetReadFile(hUrlFile,
    buffer,
    sizeof(buffer),
    &dwBytesRead);
    if(dwBytesRead>0)
    file.Write(buffer,dwBytesRead);
    }
    ::InternetCloseHandle(hUrlFile) ;
    ::InternetCloseHandle(hNet) ;
    file.Close();
    AfxMessageBox("finished");
    return bRead;
    }