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

使用迅雷下载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进行下载了
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值