[fpc-pascal] Windows unit and SyncObjs unit clash

Joao Morais post at joaomorais.com.br
Wed Mar 26 15:52:51 CET 2008

Marco van de Voort wrote:
>> On Wed, 26 Mar 2008, Graeme Geldenhuys wrote:
>>> On 26/03/2008, Michael Van Canneyt <michael at freepascal.org> wrote:
>>>> Yes, use fully qualified names.
>>>>  windows.tcriticalsection.
>>>>  syncobjs.tcriticalsection.
>>> Why doesn't Delphi compiler complain about it?  A quick search
>>> revealed that Delphi's Windows.pas unit doesn't contain a
>>> TCriticalSection type definition, so why does FPC's Windows.pas unit?
>>> Why must FPC have two TCriticalSection type definitions?
>> It was translated automatically with the h2pas tool, probably with the -t
>> option, which prepends a T to all types. For backwards compatibility we
>> cannot revert this.
> Hmm, didn't older (<6) versions simply have this, and did synobjs get
> introduced later? In that case, if Delphi can break compat, so can we.

D5 has Windows.TRTLCriticalSection, and SyncObjs.TCriticalSection which 
encapsulates a TRLTCriticalSection.

Joao Morais

More information about the fpc-pascal mailing list