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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «О Ρ‡Ρ‘ΠΌ Π½Π΅ ΠΏΠΈΡˆΡƒΡ‚ Π² ΠΊΠ½ΠΈΠ³Π°Ρ… ΠΏΠΎ DelphiΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 3

Автор А. Π“Ρ€ΠΈΠ³ΠΎΡ€ΡŒΠ΅Π²

Вторая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, связанная со справкой Π½Π° основС hlp-Ρ„Π°ΠΉΠ»ΠΎΠ²,β€” это Ρ‚ΠΎ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Delphi, разумССтся, Π½Π΅ сами писали эту справку, Π° взяли Ρ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ прСдоставила Microsoft. Microsoft ΠΆΠ΅ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ справки Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ НLΠ  выпустила Π² Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° ΡƒΠΆΠ΅ Π²Ρ‹ΡˆΠ»Π° Windows 95, Π½ΠΎ Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»ΠΎ Windows NT 4. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, прСкрасно Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π² NT 4, Ρ‚Π°ΠΌ написано, Ρ‡Ρ‚ΠΎ Π² Windows NT ΠΎΠ½ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ, Ρ‚.ΠΊ. Π² Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… вСрсиях ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»ΠΈΡΡŒ. Π’ справкС, поставляСмой с Delphi 7 (ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΠΌΠΈ вСрсиями), эта информация ΠΏΠΎΠ΄ΠΏΡ€Π°Π²Π»Π΅Π½Π°, Π½ΠΎ Π΄Π°ΠΆΠ΅ ΠΈ Ρ‚Π°ΠΌ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ появились Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Windows NT 4 (ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, CoCreateInstanceEx). И ΡƒΠΆ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, бСсполСзно ΠΈΡΠΊΠ°Ρ‚ΡŒ Π² этой справкС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ функциях, ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΠΈΡ…ΡΡ Π² Windows 98, 2000, XΠ . БоотвСтствСнно, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² этих вСрсиях Delphi Π΄Π°ΠΆΠ΅ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π΅ΡΡ‚ΡŒ для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Windows API, β€” справку, ΠΏΠΎΡΡ‚Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ с Delphi, ΠΈΠ»ΠΈ MSDN. БСзусловно, слСдуСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ MSDN. Π‘ΠΏΡ€Π°Π²ΠΊΠ°, поставляСмая с Delphi, ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ прСимущСство ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с MSDN: Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ· срСды Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ клавиши <F1>. Но риск ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅Π²Π΅Ρ€Π½Ρ‹Π΅ свСдСния слишком Π²Π΅Π»ΠΈΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это прСимущСство ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ. ЕдинствСнная ситуация, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π° справка, поставляСмая с Delphi, β€” это случай, Ссли Ρƒ вас Π½Π΅Ρ‚ достаточно быстрого доступа ΠΊ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с online-вСрсиСй MSDN ΠΈ Π½Π΅Ρ‚ возмоТности приобрСсти ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ offline-Π²Π΅Ρ€ΡΠΈΡŽ.

Рис. 1.2. Бтарая (Π½Π° основС hlp-Ρ„Π°ΠΉΠ»ΠΎΠ²) справка ΠΏΠΎ Windows API (ΠΏΠΎΠΊΠ°Π·Π°Π½Π° функция DeleteObject)


Начиная с BDS 2006, Borland/CodeGear Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»Π° Π½ΠΎΠ²ΡƒΡŽ ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΡƒΡŽ систСму Borland Help (рис. 1.3). По интСрфСйсу ΠΎΠ½Π° ΠΎΡ‡Π΅Π½ΡŒ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ offline Π²Π΅Ρ€ΡΠΈΡŽ MSDN, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, поэтому тСхнологичСских ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ справочных систСм ΠΏΠΎ Delphi ΠΈ ΠΏΠΎ Windows API большС Π½Π΅ сущСствуСт. Π’ справку BDS 2006 ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π° справка ΠΏΠΎ Windows API ΠΎΡ‚ 2002–2003 Π³ΠΎΠ΄ΠΎΠ² (Ρ€Π°Π·Π½Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½ΡƒΡŽ Π΄Π°Ρ‚Ρƒ) Π‘ΠΏΡ€Π°Π²ΠΊΠ° Delphi 2007 содСрТит свСдСния ΠΏΠΎ Windows API ΠΎΡ‚ 2006 Π³ΠΎΠ΄Π°, Ρ‚.Π΅. совсСм Π½ΠΎΠ²Ρ‹Π΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Delphi 2007 Π½Π°ΠΊΠΎΠ½Π΅Ρ†-Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ offline-вСрсии MSDN, Π° ΠΊ online-вСрсии ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ лишь ΠΈΠ·Ρ€Π΅Π΄ΠΊΠ°, ΠΊΠΎΠ³Π΄Π° трСбуСтся информация ΠΎ самых послСдних измСнСниях Π² Windows API (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎ Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ появились Π² Windows Vista).

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

НСсмотря Π½Π° ΠΎΡ‡Π΅Π½ΡŒ высокоС качСство Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² MSDN, относящихся ΠΊ Window API, ошибки ΠΈΠ½ΠΎΠ³Π΄Π° Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΈ Ρ‚Π°ΠΌ. Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΈΡ… ΠΈΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с ситуациСй, ΠΊΠΎΠ³Π΄Π° Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ какая-Π»ΠΈΠ±ΠΎ функция Windows API Π²Π΅Π΄Ρ‘Ρ‚ сСбя Π½Π΅ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ это описано Π² вашСй offline-справкС, Π΅ΡΡ‚ΡŒ смысл Π·Π°Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π² online-справку β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚Π°ΠΌ ΡƒΠΆΠ΅ появились Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Рис. 1.3. Окно справки Delphi 2007 (функция DeleteObject)


БистСма Windows написана Π½Π° C++, поэтому всС описания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Windows API, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΡ… использования ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½Π° этом языкС (это касаСтся ΠΊΠ°ΠΊ MSDN, Ρ‚Π°ΠΊ ΠΈ справки, поставляСмой с Delphi). ΠŸΡ€ΠΈ этом, ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ‚ΠΈΠΏΠΎΠ², ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Π² Windows API. ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² Delphi. БоотвСтствиС ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Ρ‚Π°Π±Π». 1.1.


Π’Π°Π±Π»ΠΈΡ†Π° 1.1. БоотвСтствиС Ρ‚ΠΈΠΏΠΎΠ² Delphi систСмным Ρ‚ΠΈΠΏΠ°ΠΌ

Π’ΠΈΠΏ Windows API Π’ΠΈΠΏ Delphi INT INT UINT LongWord WORD Word SHORT SmallInt USHORT Word CHAR Π§Π°Ρ‰Π΅ всСго соотвСтствуСт Ρ‚ΠΈΠΏΡƒ Char, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ShortInt, Ρ‚.ΠΊ. Π² C++ Π½Π΅Ρ‚ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΈ цСлочислСнным Ρ‚ΠΈΠΏΠ°ΠΌΠΈ UCHAR Π§Π°Ρ‰Π΅ всСго соотвСтствуСт Ρ‚ΠΈΠΏΡƒ Byte, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ Char DWORD LongWord BYTE Byte WCHAR WideChar BOOL LongBool int Integer long LongInt short SmallInt unsigned int Cardinal

НазваниС Ρ‚ΠΈΠΏΠΎΠ² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ прСфикс P ΠΈΠ»ΠΈ LP (Pointer ΠΈΠ»ΠΈ Long Pointer, Π² 16-разрядных вСрсиях Windows Π±Ρ‹Π»ΠΈ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΈ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ. Π’ 32-разрядных всС ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅, поэтому ΠΎΠ±Π° прСфикса ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ смысл). НапримСр, LPDWORD эквивалСнтСн Ρ‚ΠΈΠΏΡƒ ^DWORD, PUCHAR β€” ^Byte. Иногда послС прСфикса P ΠΈΠ»ΠΈ LP стоит Π΅Ρ‰Π΅ прСфикс C β€” ΠΎΠ½ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ это ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° константу. Π’ C++ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ объявлСниС Ρ‚Π°ΠΊΠΈΡ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° константноС содСрТимоС, Ρ‚.Π΅. компилятор Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ это содСрТимоС Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Π½ΠΎ Π½Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’ Delphi Ρ‚Π°ΠΊΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚, ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ эти Ρ‚ΠΈΠΏΡ‹ Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ указатСлями, Ρ‚.Π΅. прСфикс C игнорируСтся.

Π’ΠΈΠΏΡ‹ PVOID ΠΈ LPVOID ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π΅Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ указатСлям (Pointer).

Для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ символов Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΈΠΏ TCHAR. Windows ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄Π²Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ: ANSI (1 Π±Π°ΠΉΡ‚ Π½Π° символ) ΠΈ Unicode (2 Π±Π°ΠΉΡ‚Π° Π½Π° символ; ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Unicode Π² Windows ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Π΄Π°Π»Π΅Π΅). Π’ΠΈΠΏ CHAR соотвСтствуСт символу Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ ANSI, WCHAR β€” Unicode. Для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ANSI, Ρ‚ΠΈΠΏ TCHAR эквивалСнтСн Ρ‚ΠΈΠΏΡƒ CHAR, для ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Unicode β€” WCHAR. Π’ Delphi Π½Π΅Ρ‚ прямого Π°Π½Π°Π»ΠΎΠ³Π° Ρ‚ΠΈΠΏΡƒ TCHAR. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ сам Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ трСбуСтся Π² Π΄Π°Π½Π½ΠΎΠΌ мСстС. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π² Windows API ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ символов, Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΡ…ΡΡ Π½ΡƒΠ»Π΅ΠΌ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° TCHAR ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΉ символ, Ρ‚Π°ΠΊ ΠΈ Π½Π° строку. Π§Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ Π»Π΅Π³Ρ‡Π΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, Π³Π΄Π΅ ΠΊΠ°ΠΊΠΎΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, Π² Windows API Π΅ΡΡ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ LPTCHAR ΠΈ LPTSTR. Они эквивалСнтны Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ, Π½ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ принято ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΌ, Π³Π΄Π΅ трСбуСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΉ символ, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” Π½Π° строку. Если строка пСрСдаСтся Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° константу, Ρ‚.Π΅. Ρ‚ΠΈΠΏ LPCTSTR. Π’ Delphi это соотвСтствуСт PChar для ANSI ΠΈ PWideChar для Unicode. Π—Π΄Π΅ΡΡŒ слСдуСт ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ записи строковых Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² Π² языках C/C++. Π‘ΠΈΠΌΠ²ΠΎΠ» \ Π² Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: послС Π½Π΅Π³ΠΎ ΠΈΠ΄Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… символов. НапримСр, \n ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки, \t β€” символ табуляции ΠΈ Ρ‚.ΠΏ. Π’ Delphi Ρ‚Π°ΠΊΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ Π½Π΅Ρ‚, поэтому ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈΠ· MSDN слСдуСт явно ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… символов. НапримСр, Π»ΠΈΡ‚Π΅Ρ€Π°Π» "Π°\nb" Π² Delphi прСвращаСтся Π² 'a\'#13'b'. ПослС символа \ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ΄Ρ‚ΠΈ число β€” Π² этом случаС ΠΎΠ½ΠΎ трактуСтся ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ символа, Ρ‚.Π΅. Π»ΠΈΡ‚Π΅Ρ€Π°Π» "a\0b9" Π² C/C++ эквивалСнтСн Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρƒ 'Π°'#0'b'#9 Π² Delphi. Если Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ строковый Π»ΠΈΡ‚Π΅Ρ€Π°Π» Π²ΠΊΠ»ΡŽΡ‡Π°Π» Π² сСбя сам символ \, Π΅Π³ΠΎ ΡƒΠ΄Π²Π°ΠΈΠ²Π°ΡŽΡ‚, Ρ‚.Π΅. Π»ΠΈΡ‚Π΅Ρ€Π°Π» "\\" Π² C++ соотвСтствуСт '\' Π² Delphi. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΊΠΎΠ΄Π°, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π² MSDN, ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ строковыС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ макросами TEXT ΠΈΠ»ΠΈ _T, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слуТат для ΡƒΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ записи строковых Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ… ANSI ΠΈ Unicode. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ»Π° Π½Π° Delphi эти макросы ΠΌΠΎΠΆΠ½ΠΎ просто ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ. Π‘ ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ сказанного Ρ‚Π°ΠΊΠΎΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ΄ (взят ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° использования Named pipes):

LPTSTR lpszPipename = TEXT("\\\\.\\pipe\\mynamedpipe");

Π½Π° Delphi Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

var

 lpszPipeName: PChar;

...

lpszPipeName:= '\\.\pipe\mynamedpipe';

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠΎΠ² ΠΈΠ· Π»Π΅Π²ΠΎΠΉ части Ρ‚Π°Π±Π». 1.1 Π² цСлях совмСстимости описаны Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ Windows, поэтому ΠΎΠ½ΠΈ допустимы Π½Π°Ρ€Π°Π²Π½Π΅ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Delphi. ΠšΡ€ΠΎΠΌΠ΅ этих Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΅Ρ‰Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅. НапримСр, дСскриптор ΠΎΠΊΠ½Π° ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ HWND, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ сообщСния β€” Ρ‚ΠΈΠΏ WPARAM (Π² старых 16-разрядных Windows ΠΎΠ½ Π±Ρ‹Π» эквивалСнтСн Ρ‚ΠΈΠΏΡƒ Word, Π² 32-разрядных β€” LongInt). Π­Ρ‚ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ описаны Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ Windows.

Записи (record) Π² C/C++ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ структурами ΠΈ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ слова struct. Из-Π·Π° особСнностСй описания структур Π½Π° языкС Π‘ структуры Π² Windows API ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π΄Π²Π° ΠΈΠΌΠ΅Π½ΠΈ: ΠΎΠ΄Π½ΠΎ основноС имя, составлСнноС ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… Π±ΡƒΠΊΠ², ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‚Π΅ΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΈ ΠΎΠ΄Π½ΠΎ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰Π΅Π΅ΡΡ ΠΈΠ· основного Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ прСфикса tag. Начиная с Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠΉ вСрсии Delphi приняты ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° имСнования Ρ‚Π°ΠΊΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ²: простоС ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ Π΅Ρ‰Π΅ добавляСтся Π½ΠΎΠ²ΠΎΠ΅ имя, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰Π΅Π΅ΡΡ ΠΈΠ· основного присоСдинСниСм ΠΎΠ±Ρ‰Π΅ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π² Delphi прСфикса T. НапримСр, Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ CreatePenIndirect ΠΎΠ΄Π½ΠΈ ΠΈΠ· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ LOGPEN. Π­Ρ‚ΠΎ основноС имя Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π° Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ β€” tagLOGPEN. БоотвСтствСнно, Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ Windows ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° запись tagLOGPEN ΠΈ Π΅Π΅ синонимы β€” LOGPEN ΠΈ TLogPen. Π­Ρ‚ΠΈ Ρ‚Ρ€ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π² Delphi взаимозамСняСмы. Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ имя встрСчаСтся Ρ€Π΅Π΄ΠΊΠΎ, программисты, Π² зависимости ΠΎΡ‚ Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ, Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ Π»ΠΈΠ±ΠΎ основноС имя Ρ‚ΠΈΠΏΠ°, Π»ΠΈΠ±ΠΎ имя с прСфиксом T.