No, I meant the opposite, the following definitions won't work
SetFilePointerR=: >@{.@('kernel32 SetFilePointer i x x *x i'&(15!:0))
GetFileSizeR=: >@{.@('kernel32 GetFileSize i x *x'&(15!:0))
However the following definitions actually work:
SetFilePointerDLLCALL=: >@{.@('kernel32 SetFilePointer i x x *x i'&(15!:0))
GetFileSizeDLLCALL=: >@{.@('kernel32 GetFileSize i x *x'&(15!:0))
SetFilePointerR=: verb define
'hFile lDistanceToMove lpDistanceToMoveHigh dwMoveMethod'=. y
if. (lpDistanceToMoveHigh-:NULLPTR) *. (lDistanceToMove>MAXLONG32) do.
'lDistanceToMove lpDistanceToMoveHigh'=. long64to32 lDistanceToMove
end.
SetFilePointerDLLCALL hFile;lDistanceToMove;lpDistanceToMoveHigh;dwMoveMethod
)
GetFileSizeR=: verb define
hFile=. >{.y
lpFileSizeHigh=. ,2
lpFileSize=. GetFileSizeDLLCALL hFile;lpFileSizeHigh
long32to64 lpFileSize,lpFileSizeHigh
)
On Mon, Apr 14, 2008 at 8:33 PM, bill lam <[EMAIL PROTECTED]> wrote:
> Jorge Arredondo wrote:
>
> > Signatures seems to be correct, but J crashes with big files if we use
> > the SVN definitions without applying the long64to32 and long32to64
> > conversions.
> >
> > Replacing the signature in the SetFilePointerDLLCALL and
> > GetFileSizeDLLCALL (of the code I wrote) makes no difference, the
> > SetFilePointerR and GetFileSizeR (as I defined them) still work:
> > SetFilePointerDLLCALL=: >@{.@('kernel32 SetFilePointer i x x *x
> i'&(15!:0))
> > GetFileSizeDLLCALL=: >@{.@('kernel32 GetFileSize i x *x'&(15!:0))
> >
>
> Do you mean that using
>
> SetFilePointerR=: >@{.@('kernel32 SetFilePointer i x x *x i'&(15!:0))
> GetFileSizeR=: >@{.@('kernel32 GetFileSize i x *x'&(15!:0))
>
> will work on win64 without the need of long64to32 and long32to64?
>
>
>
> regards,
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm