调用迅雷SDK加速下载,创建任务失败

yingmiaochaomiao 2016-08-22 10:58:47
代码如下,就是到创建任务的时候就返回
'Access violation at address 00246451 in module 'xldl.dll'. Read of address 00000004'.
请大神帮助下
unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids,StrUtils;
Type
PDownTaskParam =^TDownTaskParam;
TDownTaskParam = Record
nReserved1:integer;
szTaskUrl:String; // 任务URL,支持http,https,ftp,ftps格式
szRefUrl:String ; // 可空,HTTP下载所在的网页URL
szCookies:String; // 可空,浏览器cookie
szFilename:array [0 .. 259] of WideChar; // 下载保存文件名.
szReserved:array [0 .. 259] of WideChar;
szSavePath:array [0 .. 259] of WideChar; // 文件保存目录
hReserved:HWND;
bReserved1:boolean;
szReserved1:String[64] ;
szReserved2:String[64];
IsOnlyOriginal:boolean; //是否只从原始地址下载
nReserved2:UINT;
bReserved2:boolean;
IsResume:boolean; // 是否用续传
reserved:DWORD;
end;
TYPE
DOWN_TASK_STATUS = (NOITEM = 0,
TSC_ERROR,
TSC_PAUSE,
TSC_DOWNLOAD,
TSC_COMPLETE,
TSC_STARTPENDING,
TSC_STOPPENDING );
TYPE
TASK_ERROR_TYPE =(TASK_ERROR_UNKNOWN , // 未知错误
TASK_ERROR_DISK_CREATE , // 创建文件失败
TASK_ERROR_DISK_WRITE, // 写文件失败
TASK_ERROR_DISK_READ, // 读文件失败
TASK_ERROR_DISK_RENAME, // 重命名失败
TASK_ERROR_DISK_PIECEHASH, // 文件片校验失败
TASK_ERROR_DISK_FILEHASH, // 文件全文校验失败
TASK_ERROR_DISK_DELETE, // 删除文件失败失败
TASK_ERROR_DOWN_INVALID , // 无效的DOWN地址
TASK_ERROR_PROXY_AUTH_TYPE_UNKOWN, // 代理类型未知
TASK_ERROR_PROXY_AUTH_TYPE_FAILED, // 代理认证失败
TASK_ERROR_HTTPMGR_NOT_IP, // http下载中无ip可用
TASK_ERROR_TIMEOUT, // 任务超时
TASK_ERROR_CANCEL, // 任务取消
TASK_ERROR_TP_CRASHED, // MINITP崩溃
TASK_ERROR_ID_INVALID ) ; // TaskId 非法
type
PDownTaskInfo = ^TDownTaskInfo;
TDownTaskInfo = record
stat: DOWN_TASK_STATUS;
fail_code: TASK_ERROR_TYPE;
szFilename: array [0 .. 259] of WideChar;
szReserved0: array [0 .. 259] of WideChar;
nTotalSize: int64; // 该任务总大小(字节)
nTotalDownload: int64; // 下载有效字节数(可能存在回退的情况)
fPercent: single; // 下载进度
nReserved0: integer;
nSrcTotal: integer; // 总资源数
nSrcUsing: integer; // 可用资源数
nReserved1: integer;
nReserved2: integer;
nReserved3: integer;
nReserved4: integer;
nReserved5: int64;
nDonationP2P: int64; // p2p贡献字节数
nReserved6: int64;
nDonationOrgin: int64; // 原始资源共享字节数
nDonationP2S: int64; // 镜像资源共享字节数
nReserved7: int64;
nReserved8: int64;
nSpeed: integer; // 即时速度(字节/秒)
nSpeedP2S: integer; // 即时速度(字节/秒)
nSpeedP2P: integer; // 即时速度(字节/秒)
bIsOriginUsable: BOOLEAN; // 原始资源是否有效
fHashPercent: single; // 现不提供该值
IsCreatingFile: integer; // 是否正在创建文件
reserved: array [0 .. 63] of longint;
end;

type
TForm2 = class(TForm)
Button1: TButton;
Label1: TLabel;
Button2: TButton;
edit1: TEdit;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
enumTaskStatus = (
enumTaskStatus_Connect = 0, // 已经建立连接
enumTaskStatus_Download = 2, // 开始下载
enumTaskStatus_Pause = 10, // 暂停
enumTaskStatus_Success = 11, // 成功下载
enumTaskStatus_Fail = 12);
function XL_CreateTask(stParam:TDownTaskParam):THANDLE ; cdecl; external 'xldl.dll';
//function XL_CreateTask(stParam:TDownTaskParam):THANDLE ; stdcall;external 'xldl.dll';
function XL_QueryTaskInfoEx(hTask: THANDLE; varstTaskInfo: TDownTaskInfo) : BOOLEAN; cdecl; external 'xldl.dll';
procedure XL_UnInit; external 'xldl.dll';
Function XL_Init:boolean; external 'xldl.dll';
Function XL_StartTask(hTask:THANDLE) : BOOLEAN; external 'xldl.dll';


procedure TForm2.Button1Click(Sender: TObject);
var
DTP:TDownTaskParam;
begin
//XL_Init;
if not XL_Init then
begin
Application.MessageBox('初始化迅雷引擎失败!下载失败!','警告:',MB_ICONWARNING);
Exit;
end;
DTP.szTaskUrl := (edit1.Text); //Pansichar
DTP.szFilename := '123.rar' ;
DTP.szSavePath := 'c:\download';
DTP.szRefUrl := '' ;
dtp.szCookies:='';
TH := XL_CreateTask(DTP);
//th:=XL_CreateTaskByURL(trim(edit2.Text),'c:\download','1.rar',False);
//XLURLDownloadToFile(edit1.Text,'c:\movie.rar');
if XL_StartTask(th) then
Label1.Caption := '开始任务'
else
Label1.Caption := '不能开始任务';
SHowMEssage(DTP.szSavePath);
end;

...全文
3468 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧