Prova a verificare l'ordine delle "Uses". Se non ricordo male ho avuto lo stesso problema 2 settimane fa' quando facevo i miei esperimenti con i thread. Questa è la mia dichiarazione:
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
LCLProc, LCLType, LCLIntf, {Queste 3 sono usate per la CriticalSection}
StdCtrls, ExtCtrls
;
Ciao, Mario
Ciao,
come hai dichiarato quella variabile che usi?
procedure EnterCriticalsection(var cs : TRTLCriticalSection);
Per il "non WinCE" è definita in questa maniera ...
TRTLCriticalSection = packed record
DebugInfo : pointer;
LockCount : longint;
RecursionCount : longint;
OwningThread : THandle;
LockSemaphore : THandle;
SpinCount : ULONG_PTR;
end;
Il compilatore si inca... perchè non trova una longWord, a occhio e croce c'è qualche problema con il "var" della dichiarazione.
Spulciando il codice della libraria ... usa un thread manager per entrare nella sezione critica.
TCriticalSectionHandler = Procedure (var cs);
Stai compilando su/per linux per caso?
Altra domanda idiota (forse) che piattaforma usi (32/64 bit)