Hello.
This problem arose out of another, which I posted about at
https://forum.lazarus.freepascal.org/index.php/topic,39990.0.html, but I guess it ended up in the wrong subforum. The problem is as follows:
1)I needed the
TBitMap class out of
Graphics unit. Turns out it doesn't function properly without the inclusion of the
Interfaces unit. But when I include the
Interfaces unit (and add
LCL to dependencies), the project fails to compile with the following message:
win32int.pp(8,84) Fatal: Cannot find Win32Int used by Interfaces, incompatible ppu=C:\lazarus\lcl\units\x86_64-win64\win32\win32int.ppu, package LCL
The ppu is there, target and fpc version didn't change. Lazarus sees the win32int.pp.
2)I try to recompile win32int.ppu by manually adding C:\lazarus\lcl\interfaces\win32\ to project paths. It appears to find it only to fail on the following:
win32callback.inc(1237,17) Error: identifier idents no member "IsSurrogate"
3)I try to recreate the same situation in an empty project, but cannot.
4)I try to move the
Interfaces unit in the
uses clause around or move it the main .
lpr file completely. The problem persists.
5)I try to create a new project from scratch and then transfer my source files there. The problem persists.
6)If I do a Clean + Build it appears as though the file
win32callback.inc is compiled two times for some reason: during
LCL build it's successful, and then during the final .exe build it fails with the aforementioned error.
What direction do I even start digging towards to fix this?