[Lazarus] TRTLCriticalSection
Antonio Fortuny
a.fortuny at sitasoftware.lu
Tue Feb 25 11:22:57 CET 2014
Hi Folks.
Lazarus 1.0.2, FPC 2.6.2, Win32 and Linux x86_64
Something goes wrong with TRTRCriticalSection. There is a difference
between Windows and Linux.
In a program which will run on Win32 and Linux x86_64, using threads and
all this stuff I need to protect some code from multi-threading access.
One critical section looks enough to do the job.
So i code this in Win32 and Linux:
Interface uses clause is:
uses
{$IFDEF LINUX}
CThreads,
{$ENDIF}
syncobjs,
{$IFDEF MSWINDOWS}
windows,
{$ENDIF}
{$IFDEF LINUX}
LCLIntf,
{$ENDIF}
Classes,
IdContext,
uSimplelogger,
sitacom,
MessageQ,
autoupdateTCPthread,
sqldb,
SysUtils;
FIniCriticalSection: TRTLCriticalSection;
...
InitializeCriticalSection(FIniCriticalSection); <-----------------
compilation error
...
EnterCriticalSection(FIniCriticalSection);
try
... do a lot of things
finally
LeaveCriticalSection(FIniCriticalSection);
end
...
On the above line marked as compilation error the compiler complains
with the message
autoupdateserverthread.pas(255,48) Error: Call by var for arg no. 1 has
to match exactly: Got "TRTLCriticalSection" expected "QWord"
*winapi.inc*(650,11) Hint: Found declaration:
InitializeCriticalSection(var QWord);
winapi ??? Why on Linux ?
No way to get rid of this compilation error
In Win32 the program compiles and runs without errors.
Some help would be appreciated.
Antonio.
---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20140225/fef6f935/attachment-0002.html>
More information about the Lazarus
mailing list