[Lazarus] Forward declaration not solved

Sven Barth pascaldragon at googlemail.com
Fri Aug 9 11:29:25 CEST 2013


Am 09.08.2013 11:15, schrieb Antonio Fortuny:
>
> Le 09/08/2013 10:22, Mattias Gaertner a écrit :
>> clamav3.pas(324,12) Error: Forward declaration not solved
>> "OpenLongFileName(const AnsiString,const LongInt):QWord;"
>>
>> Any comment ?
>> Maybe there is a unit in your implementation uses section that
>> redefines THandle.
> On the declaration (following Ctrl + mouse left click) leads to QWord: 
> THandle --> PtrUInt (LCLType) --> QWord (systemh.inc)
> on the implementaion: THnadle --> System.THandle (sysutilf.inc) --> 
> THandle --> LongInt (sysosh.inc)
>
> Well done. In the interface units uses declares:   LCLIntf, LCLType,  
> LMessages,  FileUtil;
> In the implemantaion uses declares   Classes,  sysutils;
> OK. It is a Delphi conversion and I didn't pay enough attention to it
>
> But the isn't there some ambiguity between LCL declarations and FPC 
> declarations for what is obviously the same type ?
Might be related to the fact that the LCL often uses the THandle to 
store a pointer on non-Windows widgetsets. On e.g. Linux x86_64 THandle 
is defined as a longint because of file operations... There might not be 
a solution with which anyone can live :/

Regards,
Sven




More information about the Lazarus mailing list