Hello,
I found a problem using the latest version of lazarus (1.8.0 64bit FPC 3.0.4) in debug mode. On Windows 10 64bit.
In the imjmorecfg.pas file I saw:
This I think is a problem for 64bit systems
For FPC if I replace with
uInt = NativeUInt
I do not perform more dangerous crashes
Also I think there is a similar problem (I have not tested) for:
imzutil.pas
uInt = cardinal; -> NativeUInt
ptr2int = uInt; -> PtrUInt
(but the message "Nomssi" under "ptr2int" is not very clear)
I noticed that through the lazarus compiler, several "warning" and "hint" messages appear.
For "justified Hints" it is possible to disable them (to avoid having to run many already verified messages).
example
FillChar(TmpInfo, SizeOf(TmpInfo), 0);
show variable message not initialized
it is due to the use of "var" but here it is correct then
FillChar({%H-}TmpInfo, SizeOf(TmpInfo), 0);
avoid the message (it is filtered by lazarus itself)
Finally, the compilation on the ImagingPcx.pas unit is blocked
ifMono: TImageFormat = TImageFormat (250);
...
I do not know if it's correct.
I know that the SizeOf () dimension of the "enum" types can change depending on the number of elements.
The compiler writes:
ImagingPcx.pas(91,43) Error: range check error while evaluating constants (250 must be between 0 and 206)
(sorry for my English)
Thanks