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

Reply via email to