本帖最后由 VisualEleven 于 2012-09-07 13:18:22 编辑

解决方案 »

  1.   

    重新附上代码bool  Download::OnDownload(CString url, CString outdir)
    {
    bool result = false;
    HINTERNET open  =  InternetOpen( "DL", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0 );
    if (open != NULL)
    {
    HINTERNET openurl = InternetOpenUrl(open, url, NULL, 0 , INTERNET_FLAG_DONT_CACHE, 0 ); 
    //INTERNET_FLAG_RELOAD
    if (openurl != NULL)
    {
    byte buffer[MAXBLOCKSIZE];
    memset(buffer, 0, MAXBLOCKSIZE);
    ULONG number = 1;
    DWORD written; /*HANDLE file;
    file = CreateFile(outdir, FILE_SHARE_WRITE, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
    if (file != INVALID_HANDLE_VALUE)
    {
    while(1)
    {
    InternetReadFile(openurl, buffer, sizeof(buffer), &number);
    if(number == 0)
    break;
    if (WriteFile(file, buffer, sizeof(buffer), &written, NULL) == 0)
    break;
    }
    CloseHandle(file);
    }*/
    FILE *stream;
    if ( (stream = fopen( outdir, "wb")) ) // != NULL 
    {
    memset(buffer,0,MAXBLOCKSIZE);
    while ( number > 0 )
    {
    InternetReadFile(openurl, buffer, MAXBLOCKSIZE - 1 , &number);
    fwrite(buffer, sizeof(char), number, stream);
    }
    fclose( stream );
    result = true;
    }
    }
    InternetCloseHandle(openurl);
    openurl  =  NULL;
    }
    InternetCloseHandle(open);
    open = NULL;
    return result;
    }
      

  2.   

    不能正常下载是指的什么,数据没有下载完整还是什么的?你Debug下有调试吗?
      

  3.   

    轻文件 用 URLDownloadToFile 很好,阻塞下载.
      

  4.   

    http://blog.csdn.net/kingsollyu/article/details/6113278
    http://www.cnblogs.com/brightsea/archive/2011/06/21/2086015.html
      

  5.   

    上面的代码可以实现下载,为什么exe,dwg这类文件下载不正常,只有几K,文件几百K,不知为什么
      

  6.   

    很大可能你试的url有问题,dwg那种基本都是有登陆验证的,你仔细看下下回来的东西,估计就是网页内容
      

  7.   

    我也遇到了这个问题,不过已经解决了
    你用的是IIS服务器吧,在IIS管理器中,MIME类型里面添加访问的文件类型就可以了
    参考链接:http://support.microsoft.com/kb/326965/zh-cn