Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «БистСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² срСдС WindowsΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 126

Автор ДТонсон Π₯Π°Ρ€Ρ‚

while ((*pIn != CR || *(pIn + 1) != LF) && (SIZE_T)pIn < (SIZE_T)FsIn) {

Π’Ρ‚ΠΎΡ€ΠΎΠΉ сСгмСнт, относящийся ΠΊ ΡˆΠ°Π³Ρƒ 2b, ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ сообщСния, связанным с усСчСниСм Ρ‚ΠΈΠΏΠΎΠ² (pointer truncation). Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° прСдставлСн Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ 16.2.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 16.2. sortMM: ΠΊΠΎΠ΄ Π΄ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΊ пСрСносу Π² Win64, Ρ‡Π°ΡΡ‚ΡŒ 2

…

40  DWORD, KStart, KSize;

174 /* Π¨Π°Π³ 2b: ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡; ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ адрСс ΠΊΠ»ΡŽΡ‡Π°. */

175

176  KStart = (DWORD) pInScan;

177  /* ВычисляСм адрСс Π½Π°Ρ‡Π°Π»Π° поля ΠΊΠ»ΡŽΡ‡Π°. */

178  while (*pInScan !=''&& *pInScan != '\t') pInScan++;

179  /* ВычислСнный ΠΊΠΎΠ½Π΅Ρ† поля ΠΊΠ»ΡŽΡ‡Π°. */

180

181  KSize = ((DWORD)pInScan – KStart) / TSIZE; 

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ сообщСния:

SORTMM.C(176) : warning C4311: 'type cast' : pointer truncation from 'TCHAR __based(pInFile) *' to 'DWORD'

SORTMM.C(181) : warning C4311: 'type cast' : pointer truncation from 'TCHAR __based(pInFile) *' to 'DWORD'

Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ сводятся ΠΊ использованию DWORD_PTR Π² качСствС Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π² строкС 40 ΠΈ ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π² строках 176 ΠΈ 181.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ сообщСния Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π° ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π° шагС 2с Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ CreateIndexFile. На Web-сайтС ΠΊΠ½ΠΈΠ³ΠΈ находится Π²ΠΈΠ΄ΠΎΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» sortMM64.с, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π΅Π½ ΠΊΠ°ΠΊ для Win32, Ρ‚Π°ΠΊ ΠΈ для Win64, ΠΈ использованиС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ позволяСт ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ появлСния ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰ΠΈΡ… сообщСний.

ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ сообщСния ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ измСнСния, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

Π’ΠΎ всСх ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Ρ… Π½Π° Web-сайтС ΠΊΠ½ΠΈΠ³ΠΈ, ΠΎΠΏΡ†ΠΈΠΈ установлСны Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… случаях компилятор Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ» ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ сообщСния, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ 64-Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ Π±Π΅Π· Π²Ρ‹Π΄Π°Ρ‡ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰ΠΈΡ… сообщСний, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ измСнСния для Π½ΠΈΡ… Π½Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΈΡΡŒ.

Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° atouEX (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 14.2) ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ использования Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… DWORD_PTR для цСлочислСнной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, хранящСйся Π² ΠΏΠΎΠ»Π΅ hEvent структуры OVERLAPPED. Π­Ρ‚ΠΎ обусловлСно Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² Win64 Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° HANDLE составляСт 64 Π±ΠΈΡ‚Π°. НСобходимыС измСнСния ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Ρ‹ Π² листингС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, находящСмся Π½Π° Web-сайтС.

НСкоторыС прСдупрСТдСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹. НапримСр, Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ strlen(), Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ значСния Ρ‚ΠΈΠΏΠ° size_t. Π”Π»ΠΈΠ½Π° строки Π±ΡƒΠ΄Π΅Ρ‚ часто Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠ° DWORD, вызывая появлСниС ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰ΠΈΡ… сообщСний ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ "ΠΏΠΎΡ‚Π΅Ρ€ΠΈ точности" ("loss of precision"). Π’ΠΎ всСх практичСских ситуациях Π½Π° прСдупрСТдСния Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ внимания.

РСзюмС

64-разрядный Windows API обСспСчиваСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ выполнСния Π½Π° Windows-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… 64-разрядныС процСссоры ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ поколСния, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ…, Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с высокими запросами ΠΊ рСсурсам. ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΡΠ² всСго лишь Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠ΅Ρ€ прСдостороТности, ΠΌΠΎΠΆΠ½ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΊΠ°ΠΊ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Win32, Ρ‚Π°ΠΊ ΠΈ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Win64. 

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π°

ΠΠ°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ источниками ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MSDN ΠΈ информация, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Π΅ Π½Π° Web-сайтС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ссылки, ΠΏΠΎΡ‡Π΅Ρ€ΠΏΠ½ΡƒΡ‚Ρ‹Π΅ Π½Π° Web-сайтС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft ΠΈ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… источников.

β€’ ΠŸΠΎΠ΄Π³ΠΎΡ‚овлСнная спСциалистами ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft ΡΡ‚Π°Ρ‚ΡŒΡ "New Data Types" доступна ΠΏΠΎ адрСсу http://msdn.microsoft.com/library/default.asp?url=/library/en-us/win64/win64/the_new_data_types.asp. Π’Π°Π±Π»ΠΈΡ†Ρ‹ 16.1 ΠΈ 16.2 взяты ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ· этой ΡΡ‚Π°Ρ‚ΡŒΠΈ.

β€’ "Introduction to Developing Applications for the 64-bit Version of Windows" β€” Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎΠ΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ программирования. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ доступна ΠΏΠΎ адрСсу http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetserv/html/ws03-64-bitwindevover.asp. Π‘Ρ‚Π°Ρ‚ΡŒΡ содСрТит Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ процСссоров Itanium, хотя Itanium β€” Π½Π΅ СдинствСнныС процСссоры, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Win64.

β€’ ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅ схСмы UNIX "Aspen", подводящСй ΠΏΡ€ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ΄ модСль LP64, доступно ΠΏΠΎ адрСсу http://www.opengroup.org/public/tech/aspen/lp64_wp.htm.

β€’ Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ "Migration Tips", доступной ΠΏΠΎ адрСсу http://msdn.microsoft.com/library/default.asp?url=/library/en-us/win64/win64/migration_tips.asp, Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ совСты ΠΏΠΎ пСрСносу ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с 32-разрядных Π½Π° 64-разрядныС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ ряд ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ссылок. ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Ρ поиск Π² Web, Π²Ρ‹ смоТСтС Π½Π°ΠΉΡ‚ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ.

Если вас ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‚ ΠΎΠ±Ρ‰ΠΈΠ΅ вопросы Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ², ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ ΠΊΠ½ΠΈΠ³Π΅ [16], ΡΠ²Π»ΡΡŽΡ‰Π΅ΠΉΡΡ стандартом Π² этой области. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ, ΠΊΠ°ΡΠ°ΡŽΡ‰Π°ΡΡΡ процСссоров Itanium, приводится Π² [44].

ΠžΠ±ΡˆΠΈΡ€Π½Π°Ρ информация, ΠΊΠ°ΡΠ°ΡŽΡ‰Π°ΡΡΡ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€, основанных Π½Π° 64-разрядном Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΈ, прСдставлСна Π½Π° Web-сайтах ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ Intel ΠΈ AMD:

http://www.intel.com ΠΈ http://www.amd.com/us-en

УпраТнСния

16.1. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ p1 ΠΈ Ρ€2 β€” ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, связанныС ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ΠΌ p1 > Ρ€2, ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ двумя элСмСнтами, вычитая ΠΎΠ΄ΠΈΠ½ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. ΠŸΡ€ΠΈ ΠΊΠ°ΠΊΠΈΡ… условиях Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅: (DWORD)p1 – (DWORD)Ρ€2? Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π»ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ это Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° (DWORD)(p1 – Ρ€2), Ссли расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ элСмСнтами Π½Π΅Π²Π΅Π»ΠΈΠΊΠΎ? Подсказка. ΠŸΡ€ΠΈΠΌΠΈΡ‚Π΅ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ свойства ΠΎΠ±Π΅ΠΈΡ… ΠΊΠΎΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ€Π½Ρ‹Ρ… Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊ. 

16.2. Π˜Π·Π±Π°Π²ΡŒΡ‚Π΅ΡΡŒ ΠΎΡ‚ Π²Ρ‹Π΄Π°Ρ‡ΠΈ компилятором ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰ΠΈΡ… сообщСний ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ 64-Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ссли Ρ‚Π°ΠΊΠΎΠ²Ρ‹Π΅ выводятся, Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, sortBT (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 5.1) ΠΈ ThreeStage (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 10.5), Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… интСнсивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ.

16.3. Π•сли Ρƒ вас имССтся доступ ΠΊ систСмС Win64, протСстируйтС 64-разрядныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Ρ‚Π°ΠΊΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² 32-разрядном Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ осущСствляСтся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

ΠŸΠ Π˜Π›ΠžΠ–Π•ΠΠ˜Π• А

ИспользованиС ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

На Web-сайтС ΠΊΠ½ΠΈΠ³ΠΈ (http://www.awprofessional.com/titles/0321256190) находится zip-Π°Ρ€Ρ…ΠΈΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит исходныС тСксты всСх ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, слуТСбныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹. Ряд ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π° Web-сайтС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π΅ для всСх ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΉ ΠΈ прСдставлСны Π½Π΅ всС ΠΈΠ· ΡƒΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π² ΠΊΠ½ΠΈΠ³Π΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

β€’ Π’сС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Windows 2000, XP ΠΈ Server 2003 Π½Π° самых Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… систСмах, ΠΎΡ‚ лэптопов Π΄ΠΎ сСрвСров. Π’ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… случаях тСстированиС ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ»ΠΎΡΡŒ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Windows 9x, хотя ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ β€” особСнно Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… этапах излоТСния ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° β€” ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Windows 9x ΠΈ Π΄Π°ΠΆΠ΅ NT 4.0 Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚.

β€’ Π‘Π±ΠΎΡ€ΠΊΠ° ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ»ΠΈΡΡŒ ΠΊΠ°ΠΊ с Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ опрСдСлСниями UNICODE, Ρ‚Π°ΠΊ ΠΈ Π±Π΅Π· Ρ‚Π°ΠΊΠΎΠ²Ρ‹Ρ…. Под ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Windows 9x Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ лишь Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с символами Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ UNICODE Π½Π΅ прСдусмотрСна.

β€’ Π’ ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅ΠΌ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв компиляция ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Microsoft Visual C++ вСрсий 7.0 ΠΈ 6.0 Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ Π²Ρ‹Π΄Π°Ρ‡Π΅ΠΉ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰ΠΈΡ… сообщСний, Ссли для критСрия ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΡΡ‚ΠΈ ошибок (warning level), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ диагностичСских сообщСний компилятора, установлСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 3. Однако ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹Π²ΠΎΠ΄ сообщСния "ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ return Π² основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅" ("no return from main program") Π² случаС использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ExitProcess.

β€’ Π”ля ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Microsoft Visual Studio .NET ΠΈ Microsoft Visual Studio C++ 6.0 прСдусмотрСны Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, ΠΊΠ°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Projects7 ΠΈ Projects6. Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ run7 ΠΈ run6.

β€’ Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π‘, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π°ΠΊΠΈΠ΅ спСцифичСскиС для ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² компиляторов ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова, ΠΊΠ°ΠΊ __try, __except ΠΈΠ»ΠΈ __leave. Начиная с Π³Π»Π°Π²Ρ‹ 7, Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΈΠ³Ρ€Π°ΡŽΡ‚ многопоточная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π‘ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ _beginthreadex ΠΈ _endthreadex.

β€’ ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² (Π² ΠΈΡ… ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ (release), Π° Π½Π΅ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ (debug) Ρ„ΠΎΡ€ΠΌΠ΅), Ρ‚Π°ΠΊ ΠΈ make-Ρ„Π°ΠΉΠ»Ρ‹. ВсС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ достаточно просты, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‚ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ количСством зависимостСй (dependencies) ΠΈ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ быстро ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ Π² любой ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ с ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π»ΠΈΠ±ΠΎ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ, Π»ΠΈΠ±ΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ вСрсии.

β€’ ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ для построСния всСх ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ статичСских ΠΈ динамичСских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π½Π° созданиС ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Для сборки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ срСдствами, распространяСмыми Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ (GNU), ΠΊΠ°ΠΊ компиляторы gcc ΠΈ g++, входящиС Π² состав ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° инструмСнтов Gnu Compiler Collection (http://gcc.gnu.org/). Π§ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ, заинтСрСсованныС Π² ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… срСдствах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π½Π° условиях GNU ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ MinGW (http://www.mingw.org), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ описываСтся ΠΊΠ°ΠΊ "ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ свободно доступных ΠΈ свободно распространяСмых Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°, спСцифичСских для Windows, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… с Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ инструмСнтов GNU, Ρ‡Ρ‚ΠΎ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для срСды Windows, Π½Π΅ зависящиС ΠΎΡ‚ динамичСских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π‘ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния, выпускаСмых Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΠΌΠΈ сторонами". Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя, ΠΏΡ€ΠΈ тСстировании Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π² ΠΊΠ½ΠΈΠ³Π΅, я эти срСдства Π½Π΅ примСнял, Π½ΠΎ вСсьма ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ использовал возмоТности MinGW, ΠΈ ΠΌΠ½Π΅ Π΄Π°ΠΆΠ΅ ΡƒΠ΄Π°Π²Π°Π»ΠΎΡΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΡƒΡŽ сборку для создания исполняСмых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ DLL-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Windows Π² Linux-систСмах. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, я ΠΈΠΌΠ΅Π» Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ высокой эффСктивности систСм диагностики ошибок ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰ΠΈΡ… сообщСний компиляторов gcc ΠΈ g++ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ 64-разрядных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.