I have the following piece of code:
inc(integer(DestPixel), DestDelta); //DestPixel: PColorRGB; DestDelta: integer;
This works fine on 32-bit platforms. If I change the platform to 64-bit in the compiler the compiler emits this error:
E2064 Left side cannot be assigned to
The problem seems to be in the integer()
typecast. How can I fix the problem?
On the 64 bit platform,
DestPixel
is 8 bytes wide,Integer
is 4 bytes and so the typecast is invalid. You can fix this problem by usingNativeInt
instead.The
NativeInt
type is the same size as a pointer and so floats between 4 bytes and 8 bytes wide depending on the output target.Having said that, I personally would typecast with
PByte
because that more correctly describes the operation you are performing.