本帖最后由 琪诺兔 于 2021-11-7 22:59 编辑
【API汇编调用进度读写文件模块3.0】 API汇编调用+核心库打造,百兆文件毫秒完成,带进度读写文件,支持多线程,支持大文件,程序不会假死,稳定安全高效 ========↓注意↓======== ' 0 内存调用方法来源于[凌晨孤星]开源的凌晨皮肤模块里的汇编命令,已标注 ' 1 需要[QnFile32.dll]源码请联系本人[琪诺兔] ' 2 关于[QnFile32.dll],QnFile32.dll已经实现内部全指针操作, ' 基本全汇编调用API函数VC2019连接器+黑月编译 ' 3 注意[文件版]&[内存版]的命令必须配套使用 ' 4 UPX版不能被内存使用,一般来说把这个源码封装就能够使用不须要调整 ' 5 因为32位的限制原因所以,目前只能支持1G左右的文件读写,使用长整指针的办法还在想ing ' 6 关于速度方面,不使用反馈事件速度可以大幅度提升,百兆文件几乎毫秒就能够完成 ' 7 如果使用反馈事件,影响速度的原因第一是对进度的计算,第二是用户的UI性能,第三是Call反馈事件的指针 ' 8 模块内的命令封装方式有一些使用难度,建议仔细看明白在使用,或者自己对可用性进行提升 ' 9 是否支持其他语言调用,不支持,因为使用了E的字节集地址特性来取得长度, ' 其他语言调用必须符合E的字节集地址标准 ' 10 是否会在更新,理论上会,实际上要看本人的使用程度和其他用户的正反馈程度 ========↓关于模块↓========【本模块源码提供了调用文件DLL与内存调用DLL版只要自己生成模块或者复制到自己的源码里就可以了】 【两个版本使用方法完全一致,效率起飞doge】 【以下是QnFile32.DLL的函数定义与说明】 [使用W版与A版的说明完全一致就不复制了,不过文件路径W版需要提供的是U编码路径的字节集指针] [说明中的[\]是用来代表命令有W版] QnFile32.DLL | MD5:f720fe79092a1630262dfcb2b9b8a9d1 | 经过UPX不能内存 | 6656字节 | QnFile32.DLL | MD5:a9ea67790075e20389e2b0ce0517e06d | 没经过UPX可以内存 | 12800字节 | 以下是在库中的名字 | 以下是中文说明 | 以下是返回值类型 | 以下是返回值说明 | QnFileInit() | 初始化() | [整数型]
[integer] | [1]成功初始化
[-1]user32初始化失败
[-2]kernel32初始化失败
[-3]1user32释放失败
[-4]shlwapi初始化失败
[-5]kernel释放失败
[-6]user32释放失败
[-7]kernel与user32释放失败
[-8]未知错误 | QnFileRelease() | 释放() | [整数型]
[integer]
| [1]成功初始化
[-1]user32释放失败
[-2]shlwapi释放失败
[-4]shlwapi与user32释放失败
[-5]kernel释放失败
[-6]kernel与user32释放失败
[-7]kernel与shlwapi释放失败
[-8全部失败]
[-9]未知错误 | QnGetFileSizeA\W(
[integer]Filepathtextpointer
) | 取文件尺寸A\W(
[整数型]文件路径的文本指针
) | [整数型]
[integer] | [非零非负数]代表成功返回了文件长度
[-1]代表文件打开失败 | QnReadFileA\W(
[integer]Filepathtextpointer
[integer]Receivepointer
[integer]buffersize
[integer]Callbackpointer
) | 读入文件A\W(
[整数型]文件路径的文本指针
[整数型]接收数据的字节集指针
[整数型]缓冲区尺寸[0]等于默认400K
[整数型]回调子程序指针[0]等于不使用回调,
回调一个[短整数型]参数,代表进度百分比
) | [整数型]
[integer] | [1]代表成功
[-1]代表文件打开失败
[-2]代表文件尺寸超标
[-3]指针单位超标 | QnWriteFileA\W(
[integer]Filepathtextpointer
[integer]Datapointer
[integer]buffersize
[integer]Callbackpointer
[integer]Overwritefile
) | 写到文件A\W(
[整数型]文件路径的文本指针
[整数型]接收数据的字节集指针
[整数型]缓冲区尺寸[0]等于默认400K
[整数型]回调子程序指针[0]等于不使用回调,
回调一个[短整数型]参数,代表进度百分比
[整数型]是否对已存在文件进行覆盖
参数为[1或0]如果文件存在立刻返回[-1]
参数为[2]覆盖已存在文件
) | [整数型]
[integer] | [1]代表成功
[-1]代表文件打开失败
[-2]代表文件尺寸超标
[-3]指针单位超标
[-4]文件创建失败
[-5]写出失败 |
|