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

简介: 使用迅雷下载AP 下载

使用迅雷下载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进行下载了
相关文章
|
Java API
JDK API文档中文版(1.6、1.8、1.9)(附百度网盘下载地址)
JDK API文档中文版(1.6、1.8、1.9)(附百度网盘下载地址)
1666 0
JDK API文档中文版(1.6、1.8、1.9)(附百度网盘下载地址)
|
前端开发 JavaScript 测试技术
Django 实现文件上传下载API
Django 实现文件上传下载API
141 0
|
XML IDE Java
【Groovy】Gradle 构建工具 ( 自动下载并配置构建环境 | 提供 API 扩展与开发工具集成 | 内置 Maven 和 Ivy 依赖管理 | 使用 Groovy 编写构建脚本 )
【Groovy】Gradle 构建工具 ( 自动下载并配置构建环境 | 提供 API 扩展与开发工具集成 | 内置 Maven 和 Ivy 依赖管理 | 使用 Groovy 编写构建脚本 )
239 0
【Groovy】Gradle 构建工具 ( 自动下载并配置构建环境 | 提供 API 扩展与开发工具集成 | 内置 Maven 和 Ivy 依赖管理 | 使用 Groovy 编写构建脚本 )
关于用Restful API下载网易云笔记时遇到的图片外链不能打开的问题
关于用Restful API下载网易云笔记时遇到的图片外链不能打开的问题
常用电子面单接口API demo下载(菜鸟&快递鸟)
手写快递单太麻烦了,公司的订单又多,每次都写不过来,还容易出错,直接电子化在打印快递单就快了,不过现在有些人不懂怎么批量对接多个快递的电子面单,这里就给大家讲解讲解,希望对大家有用。一.电子面单接口类型及定义 快递电子面单接口:快递公司自己开发的电子面单服务, 商家使用必须快递公司上门做系统对接,使用一家快递则需要对接一次。
2826 0
|
Web App开发 Java 测试技术
24、【支付模块开发】——将下载下来的支付宝API Demo运行在web上
上一篇23、【支付模块快发】——Java对接支付宝步骤(沙箱环境)我们讲解了怎么配置相关配置文件,下面我们调试一下怎么使其在IDEA的web项目中跑起来,然后在浏览器中进行操作 我们用IDEA导入支付宝对接Demo的是时候发现不能运行,下面讲解一下怎么...
1471 0
|
JavaScript 前端开发 API
arcgis api for javascript api下载及部署
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gisdoer/article/details/79722643 开发API下载 文章地址:http://www.
1128 0
|
Java API Apache
HDFS的上传下载API
代码实例 package oa.epoint.com.hdfs; import java.io.FileOutputStream; import java.
1098 0
|
14天前
|
缓存 前端开发 API
API接口封装系列
API(Application Programming Interface)接口封装是将系统内部的功能封装成可复用的程序接口并向外部提供,以便其他系统调用和使用这些功能,通过这种方式实现系统之间的通信和协作。下面将介绍API接口封装的一些关键步骤和注意事项。