XE 2018 readfile interface has been updated wrongly

XE 2018 readfile interface has been updated wrongly

FUNCTION ReadFile( &
        hFile, &
        lpBuffer, &
        nNumberOfBytesToRead, &
        lpNumberOfBytesRead, &
        lpOverlapped)
import
  integer(BOOL) :: ReadFile ! BOOL
    !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'ReadFile' :: ReadFile
  integer(HANDLE) hFile ! HANDLE hFile
  integer(LPVOID) lpBuffer ! LPVOID lpBuffer
  integer(DWORD) nNumberOfBytesToRead ! DWORD nNumberOfBytesToRead
  integer(DWORD) lpNumberOfBytesRead ! LPDWORD lpNumberOfBytesRead
!DEC$ ATTRIBUTES REFERENCE, IGNORE_LOC, ALLOW_NULL :: lpOverlapped
  TYPE (T_OVERLAPPED) lpOverlapped ! LPOVERLAPPED lpOverlapped
 END FUNCTION

Since number of bytes read is a returned value it needs to be a pointer and  should be declaed with INTEGER(LPDWORD) as it was in your previous kernal32.f90

2 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

writeFile has the same issue.

The new interfaces are causing crashes for me. I substitued the old interface and all is OK now.

Leave a Comment

Please sign in to add a comment. Not a member? Join today