首页
社区
课程
招聘
关于SetFilePointerEx参数的问题~
发表于: 2006-5-30 14:51 6824

关于SetFilePointerEx参数的问题~

2006-5-30 14:51
6824
用invoke调用SetFilePointerEx函数

提示错误说参数不够???

我晕

我查了一下MSDN,SetFilePointerEx只有4个函数

我在VC中调用没有问题

在masm中就报出这样的错误,于是又加了一个参数,但是不知道这个参数是干嘛的,设置为NULL编译通过,运行也成功~~

现在想要知道,SetFilePointerEx最后一个参数是干嘛的?

查不到有关资料啊

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
VC没有错,MASM定义也没有错。最后一个参数是dwMoveMethod,只是你将liDistanceTOMove变量当成是Dword类型了。
The SetFilePointerEx function moves the file pointer of the specified file.

BOOL SetFilePointerEx(
  HANDLE hFile,
  LARGE_INTEGER liDistanceToMove, //这个变量是有符号的__int64的大整数变量,在32位的处理器上需要两个DWORD,DWORD
  PLARGE_INTEGER lpNewFilePointer,
  DWORD dwMoveMethod
);

typedef union _LARGE_INTEGER {
  struct {
    DWORD LowPart;
    LONG HighPart;  };
  struct {
    DWORD LowPart;
    LONG HighPart;
  } u;
  LONGLONG QuadPart;
} LARGE_INTEGER,  *PLARGE_INTEGER;
2006-5-30 15:26
0
雪    币: 235
活跃值: (100)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
invoke SetFilePointerEx,esi,@FileSize,NULL,FILE_BEGIN

你觉得这样有问题吗?

但是编译不通过
2006-5-30 15:30
0
雪    币: 235
活跃值: (100)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
哦,了解了~~

也就是说第一个值是句柄,第二个和大小的低位,第三个参数是大小的高位?
2006-5-30 15:33
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
5
//看MSDN,应该是这样调用。
invoke SetFilePointerEx,esi,iSize,-1,addr @lpdqSize,FILE_BEGIN
2006-5-30 15:38
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
6
最初由 lemony 发布
哦,了解了~~

也就是说第一个值是句柄,第二个和大小的低位,第三个参数是大小的高位?

是的。
2006-5-30 16:44
0
游客
登录 | 注册 方可回帖
返回