Am 25.02.2014 11:22, schrieb Antonio Fortuny:
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:
[snip]
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.
The function for initializing a TRTLCriticalSection is
InitCriticalSection, not InitializeCriticalSection. If you wouldn't use
the Windows unit you'd have seen this error on Windows as well.
@Michael: maybe we should add a seealso for the
Init-/Enter-/Leave-/DoneCriticalSection functions to the documentation
of the TRTLCriticalSection type.
Regards,
Sven
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus