On Fri, 9 Aug 2013, Antonio Fortuny wrote:


Le 09/08/2013 11:29, Sven Barth a écrit :
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 :/
OK, I think I can live with this. But I think it would be preferable to use a distinct type name.

I have been proponent of this idea since many years :-)

Michael.
--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to