cdew / omnithreadlibrary

Automatically exported from code.google.com/p/omnithreadlibrary
0 stars 0 forks source link

OTL.Common does not compile under XE2 (TOmniAffinity.GetCountPhysical) #46

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
I have installed latest version of the OTL on the Delphi XE with Update Patch 4 
on Win7 x64. I have done as described here: 
http://otl.17slon.com/book/doku.php?id=book:introotl:installation - without any 
problems.
Then I open a demo project StringParser1. When I compile it,
compuler stops on TOmniAffinity.GetCountPhysical and says:

[DCC Error] OtlCommon.pas(2363): E2003 Undeclared identifier: 
'TSystemLogicalProcessorInformationArr'
[DCC Error] OtlCommon.pas(2372): E2003 Undeclared identifier: 
'DSiGetLogicalProcessorInfo'
[DCC Error] OtlCommon.pas(2377): E2430 for-in statement cannot operate on 
collection type 'erroneous type'
[DCC Fatal Error] StringListParser1.pas(44): F2063 Could not compile used unit 
'OtlCommon.pas'

I have added root folder of the OTL, as well as \fastmm4, \packages and \src to 
the library path. It still does not compile. I don't understand why the 
compiler does not see TSystemLogicalProcessorInformationArr. It recognizes 
PSYSTEM_LOGICAL_PROCESSOR_INFORMATION type, which is a couple of lines above 
the definition of the TSystemLogicalProcessorInformationArr.

Please help!
And thank you very mich for the OTL!

Original issue reported on code.google.com by acetyla...@nanoweb.info on 31 Jul 2013 at 7:48

GoogleCodeExporter commented 9 years ago
Currently works.

Original comment by gabr42 on 15 Oct 2013 at 8:19

GoogleCodeExporter commented 9 years ago
Hi Primoz,
unfortunately, it still does not work. I have downloaded the latest 3.03a 
version of the OTL, without any problems installed it on Delphi XE2 (Windows 7 
x64), x32 compiler. Tried to compile speedtest1 project from the "Bag of stuff" 
as Debug - it worked. Then I tried to compile it for release and it showed this:

[DCC Error] OtlCommon.pas(2836): E2003 Undeclared identifier: 
'TSystemLogicalProcessorInformationArr'
[DCC Error] OtlCommon.pas(2840): E2003 Undeclared identifier: 
'DSiGetLogicalProcessorInfo'
[DCC Error] OtlCommon.pas(2845): E2430 for-in statement cannot operate on 
collection type 'erroneous type'
[DCC Fatal Error] speedtest1.pas(12): F2063 Could not compile used unit 
'OtlCommon.pas'

I have these paths in my library paths:
D:\Delphi XE2\Components\OmniThreadLibrary
D:\Delphi XE2\Components\OmniThreadLibrary\Lib\XE2\Win32\Debug
D:\Delphi XE2\Components\OmniThreadLibrary\Lib\XE2\Win32\Release

Any help? Thank you!

Original comment by acetyla...@nanoweb.info on 14 Dec 2013 at 12:52

GoogleCodeExporter commented 9 years ago
OK, I found the reason. Actually, the problem was in the speedtest project. In 
the project release configuration, search path was empty. I have replaced it 
with "..\..;..\..\src;..\..\fastmm4", now everything works.

Original comment by acetyla...@nanoweb.info on 14 Dec 2013 at 1:20