您现在的位置是:首页 > 文章详情

使用迅雷下载API进行快速下载

日期:2018-03-11点击:686

使用迅雷下载API进行快速下载


  • 首先新建工程,在资源的链接器加入XLDownload.lib
  • 并在代码中加入代码
  • 在源码目录中加入XLDownload.dll,XLDownload.lib,XLDownload.h,XLError.h
// xlmydownload.cpp : 定义控制台应用程序的入口点。
// XLDownload.cpp : 定义控制台应用程序的入口点。

#include "stdafx.h"
#include <windows.h>
#include <tchar.h>
#include "stdafx.h"
#include <stdio.h>
#include "stdlib.h"
#include ".\\XLDownload.h"
#include ".\\XLError.h"
#pragma comment(lib, "XLDownload.lib")

int main()
{
    // 1、初始化下载引擎
    if (FALSE == XLInitDownloadEngine())
    {
        printf("Initialize download engine failed.\n");
        return 1;
    }

    // 2、启动新任务
    // PS:如果链接无法通过,请把工程属性“将wchar_t设置为内置类型        (/Zc:wchar_t)”设置为Yes
    LONG   lTaskId = 0;
    DWORD  dwRet = XLURLDownloadToFile(
        _T("d:\\xmp.exe"),
        _T("http://xmp.down.sandai.net/kankan/XMPSetup_3.8.1.485-www.exe"),
        _T(""), lTaskId);

    if (XL_SUCCESS != dwRet)
    {
        XLUninitDownloadEngine();
        printf("Create new task failed, error code:%d.\n", dwRet);
        return 1;
    }

    printf("Begin download file.\n");

    // 3、查询任务状态
    do
    {
        ::Sleep(1000);

        ULONGLONG   ullFileSize = 0;
        ULONGLONG   ullRecvSize = 0;
        LONG        lStatus = -1;

        dwRet = XLQueryTaskInfo(lTaskId, &lStatus, &ullFileSize, &ullRecvSize);
        if (XL_SUCCESS == dwRet)
        {
            // 输出进度信息
            if (0 != ullFileSize)
            {
                double  douProgress = (double)ullRecvSize / (double)ullFileSize;
                douProgress *= 100.0;
                printf("Download progress:%.2f%%\n", douProgress);
            }
            else
            {
                printf("File size is zero.\n");
            }

            if (enumTaskStatus_Success == lStatus)
            {
                printf("Download successfully.\n");
                break;
            }

            if (enumTaskStatus_Fail == lStatus)
            {
                printf("Download failed.\n");
                break;
            }
        }
    } while (XL_SUCCESS == dwRet);

    // 4、无论是否下载成功,都必须调用XLStopTask
    XLStopTask(lTaskId);

    // 5、释放资源
    XLUninitDownloadEngine();
    return 0;
}
  • 代码编译如果出错,需将字符集改为Unicode 字符集
  • 运行程序,就可以使用迅雷API进行下载了
原文链接:https://yq.aliyun.com/articles/530467
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章