you can read a file larger than 4gb with Win32 using 32bit code but...

you can't read all the file at once, you'll have to read it in smaller chunks and process each of the smaller chunks.
Win32 only allow you a max of 2gb (3gb with some messing around) per process, and part of that will be already used bb system DLL's and will be fragmented.

If you do seeks, get the file size, try to lock parts of the file, you will need to use 64bit integers, and yes, you can do this in Win32.

Some libraries/api functions/objects don't support files larger than 2gb. (or 4gb if they use unsigned integers) This could be your problem, but we have no way of knowing since you haven't told what you're using/doing.