lpNumberOfBytesRead β ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΈΡΠ»Π° Π±Π°ΠΉΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΈΡΠ°Π½Ρ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ ReadFile. ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠ°ΠΉΠ»Π° Π±ΡΠ» ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π³ΠΎ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ (Π³Π»Π°Π²Π° 11), Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΡΠ»Π΅Π²ΡΡ Π΄Π»ΠΈΠ½Ρ.
lpOverlapped β ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΡΡΠΊΡΡΡΡ OVERLAPPED (Π³Π»Π°Π²Ρ 3 ΠΈ 14). ΠΠ° Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΠΉΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠ°Π²Π½ΡΠΌ NULL.
ΠΠ°ΠΏΠΈΡΡ Π² ΡΠ°ΠΉΠ»
BOOL WriteFile(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped)
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅: Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ β TRUE, ΠΈΠ½Π°ΡΠ΅ β FALSE.
ΠΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π²Π°ΠΌ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ. ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π΅ΡΠ΅ Π½Π΅ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΌΠΈ Π½Π° Π΄ΠΈΡΠΊ, Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ°ΠΉΠ»Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ CreateFile Π½Π΅ Π±ΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΡΠ»Π°Π³ FILE_FLAG_WRITE_THROUGH. ΠΡΠ»ΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠ°ΠΉΠ»Π° Π±ΡΠ» ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Π°, Windows ΡΠ²Π΅Π»ΠΈΡΠΈΡ Π΄Π»ΠΈΠ½Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ°ΠΉΠ»Π°.
Π€ΡΠ½ΠΊΡΠΈΠΈ ReadFileGather ΠΈ WriteFileGather ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π°Π±ΠΎΡΠ° Π±ΡΡΠ΅ΡΠΎΠ² ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°.
Π‘ΠΎΠΏΠΎΡΡΠ°Π²ΠΈΠΌΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ UNIX ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ read ΠΈ write, ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠ°ΠΉΠ»Π°, Π±ΡΡΠ΅Ρ ΠΈ ΡΡΠ΅ΡΡΠΈΠΊ Π±Π°ΠΉΡΠΎΠ². ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ Π±Π°ΠΉΡΠΎΠ². ΠΠΎΠ·Π²ΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ read Π·Π½Π°ΡΠ΅Π½ΠΈΡ 0 ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ° ΡΠ°ΠΉΠ»Π°, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ β1 β Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ. Π ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΠΎΠΌΡ Π² Windows Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ Π±Π°ΠΉΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΡΠ΅ΡΡΠΈΠΊ, Π° Π½Π° ΡΡΠΏΠ΅Ρ ΠΈΠ»ΠΈ Π½Π΅ΡΠ΄Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π΅Ρ Π±ΡΠ»Π΅Π²ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
Π ΠΎΠ±Π΅ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠΌΠ΅ΡΡ ΡΡ ΠΎΠ΄Π½ΠΎΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΠ², Π»Π΅Π½ΡΠΎΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ², ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
ΠΡ ΠΎΠ΄ΡΡΠΈΠ΅ Π² ΡΠΎΡΡΠ°Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π‘ ΡΡΠ½ΠΊΡΠΈΠΈ read ΠΈ fwrite, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ΅ΡΡΠΈΠΊΠ° ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΡ Π±Π°ΠΉΡΠΎΠ², ΠΊΠ°ΠΊ Π² UNIX ΠΈ Windows, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈ ΡΡΠ΅ΡΡΠΈΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΡΠ΅ΠΆΠ΄Π΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½ΠΎ ΠΊΠ°ΠΊ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ° ΡΠ°ΠΉΠ»Π°, ΡΠ°ΠΊ ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠΈΠ±ΠΊΠΈ; ΡΠΎΡΠ½Π°Ρ ΠΏΡΠΈΡΠΈΠ½Π° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ feof ΠΈΠ»ΠΈ ferror. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π½Π° ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ fgets ΠΈΠ»ΠΈ fputs, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΡ ΠΠ‘ Π°Π½Π°Π»ΠΎΠ³ΠΈ Π²Π½Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π‘ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ.
ΠΡΡΡΠΏΠ»Π΅Π½ΠΈΠ΅: ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Unicode
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π΄Π²ΠΈΠ³Π°ΡΡΡΡ Π΄Π°Π»ΡΡΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΡΠ°ΡΠΊΠΎ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ, ΠΊΠ°ΠΊ Windows ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈ ΡΠ°Π·Π»ΠΈΡΠ°Π΅Ρ 8-Π±ΠΈΡΠΎΠ²ΡΠ΅, 16-Π±ΠΈΡΠΎΠ²ΡΠ΅ ΠΈ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ. ΠΡΠ° ΡΠ΅ΠΌΠ° Π²Π΅ΡΡΠΌΠ° ΠΎΠ±ΡΠΈΡΠ½Π° ΠΈ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ Π²ΡΠ΄Π΅Π»ΡΡΡ Π΅Π΅ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π³Π»Π°Π²Ρ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠΌΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π»ΠΈΡΡ ΡΠ°ΠΌΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ Π² ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΌΠ΅.
Windows ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ 8-Π±ΠΈΡΠΎΠ²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ (ΡΠΈΠΏΡ char ΠΈΠ»ΠΈ CHAR) ΠΈ (ΠΈΡΠΊΠ»ΡΡΠ°Ρ Windows 9x) 16-Π±ΠΈΡΠΎΠ²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ ΡΠΎΡΠΌΡ (ΡΠΈΠΏ WCHAR, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Π‘ ΠΊΠ°ΠΊ wchar_t). Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Microsoft 8-Π±ΠΈΡΠΎΠ²ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠΈΠ³ΡΡΠΈΡΡΠ΅Ρ ΠΊΠ°ΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ASCII, Ρ ΠΎΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ Latin-1, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΡΠ΅Π»ΡΡ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ "ASCII" Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈ Π² Π½Π°ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠΈ. ΠΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΠΌΠ°Ρ Windows Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ Unicode UTF-16 ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ ΡΠΎΡΠΌΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ Unicode ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈ Π±ΡΠΊΠ²Ρ, Π²ΡΡΡΠ΅ΡΠ°ΡΡΠΈΠ΅ΡΡ Π²ΠΎ Π²ΡΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ , Π²ΠΊΠ»ΡΡΠ°Ρ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ, ΡΡΠ°Π½ΡΡΠ·ΡΠΊΠΈΠΉ, ΠΈΡΠΏΠ°Π½ΡΠΊΠΈΠΉ, Π½Π΅ΠΌΠ΅ΡΠΊΠΈΠΉ, ΡΡΡΡΠΊΠΈΠΉ, ΡΠΏΠΎΠ½ΡΠΊΠΈΠΉ ΠΈ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈΠΉ.
ΠΠΈΠΆΠ΅ ΠΎΠΏΠΈΡΠ°Π½Ρ ΡΠ°Π³ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ (generic) Windows-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠΎ Π΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Unicode (UTF-16, Π° Π½Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, UCS-4), ΡΠ°ΠΊ ΠΈ 8-Π±ΠΈΡΠΎΠ²ΡΡ ASCII-ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
1. ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ Π²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈ ΡΡΡΠΎΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ² TCHAR, LPTSTR ΠΈ LPCTSTR.
2. Π§ΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ Π² ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ ΡΠΎΡΠΌΠ΅ Unicode (wchar_t Π² ANSI Π‘), Π²ΠΊΠ»ΡΡΠΈΡΠ΅ Π²ΠΎ Π²ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ #define UNICODE ΠΈ #define _UNICODE; Π΅ΡΠ»ΠΈ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΠΎ ΡΠΈΠΏ TCHAR Π±ΡΠ΄Π΅Ρ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ΅Π½ ΡΠΈΠΏΡ CHAR (char Π² ANSI Π‘). ΠΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ #include <windows.h>, ΠΈ Π΅Π³ΠΎ ΡΠ°ΡΡΠΎ Π·Π°Π΄Π°ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. ΠΠ΅ΡΠ²Π°Ρ ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ Windows, Π²ΡΠΎΡΠ°Ρ β Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ Π‘.
3. Π Π°Π·ΠΌΠ΅ΡΡ Π±ΡΡΠ΅ΡΠΎΠ² Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΉ ReadFile, ΠΌΠΎΠ³ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ sizeof(TCHAR).
4. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π² ΡΠΎΡΡΠ°Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π‘ ΡΡΠ½ΠΊΡΠΈΠΈ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈ ΡΡΡΠΎΠΊ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ»Π΅ <tchar.h>. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΡΡ ΠΈΠ· Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠ°ΠΊ _fgettc, _itot (Π²ΠΌΠ΅ΡΡΠΎ itoa), _stprintf (Π²ΠΌΠ΅ΡΡΠΎ sprintf), _tstcpy (Π²ΠΌΠ΅ΡΡΠΎ strcpy), _ttoi, _totupper, _totlower ΠΈ _tprintf.[12] ΠΠΎΠ»Π½ΡΠΉ ΠΈ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ _UNICODE. ΠΠΏΠΈΡΠ°Π½Π½Π°Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΠΉ. ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π΅ΡΠ΅ Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π°Π½Π°Π»ΠΎΠ³, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ ΡΠΎΡΠΌΡ, ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΠΆΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ memchr. ΠΠΎΠ²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² Π½ΠΈΡ .
5. Π‘ΡΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΡΠ΅Ρ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ ΡΠΎΡΠΌ. ΠΡΠΈ ΠΆΠ΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΈ ΠΊ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ. ΠΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π΅ ΡΠΎΡΠΌΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ ANSI Π‘, ΡΡΠ΅ΡΡΡ β ΠΌΠ°ΠΊΡΠΎΡ _Π’ (ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΡ β TEXT ΠΈ _Π’ΠΠ₯Π’) β ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ Microsoft Π‘.
"Π ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ 8-Π±ΠΈΡΠΎΠ²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ"
L"B ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ 16-Π±ΠΈΡΠΎΠ²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ"
_Π’("Π ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ")
6. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΠΈ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π‘, Π² ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» <tchar.h>, ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° <windows.h>.
16-Π±ΠΈΡΠΎΠ²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Unicode (ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° UTF-16) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² Windows ΠΏΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΠΎ; Π΄Π»Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΡΡΠ΅ΠΉ Π΄ΠΎΡΡΡΠΏΠ° Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ NTFS ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Unicode. ΠΡΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° _UNICODE, ΡΠΎ Π²ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΉ Windows ΡΡΠ΅Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠΎΠΊ, ΡΠΎΡΡΠΎΡΡΠΈΡ ΠΈΠ· ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²; Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΡΠΎΠΊΠΈ 8-Π±ΠΈΡΠΎΠ²ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ Π² ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ. Π ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠΈΡΡΠ΅ΠΌ Windows 9x, Π½Π΅ ΡΠ²Π»ΡΡΡΠΈΡ ΡΡ Unicode-ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ UNICODE ΠΈ _UNICODE Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ. Π ΡΡΠ΅Π΄Π°Ρ NT ΠΈΠ»ΠΈ Π‘Π ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ Π²Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΠ΅ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Windows 9x.
ΠΠΎ Π²ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° char Π΄Π»Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ ΡΡΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΈΠΏ TCHAR, Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ 8-Π±ΠΈΡΠΎΠ²ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΡΠΈΠΏ LPTSTR ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, Π° ΡΠΈΠΏ LPCTSTR β ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΡΠΈΠ½ΡΡΠΈΡ ΡΡΠΈΡ ΠΌΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΎΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π»ΠΈΡΡ ΡΠ²ΠΎΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΡΠ΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π³ΠΈΠ±ΠΊΠΎΡΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΠΈΡ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ Unicode, ΡΠ°ΠΊ ΠΈ 8-Π±ΠΈΡΠΎΠ²ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π»Π΅Π³ΠΊΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Unicode, Π΅ΡΠ»ΠΈ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ Π² ΡΡΠΎΠΌ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΡΠ±ΠΎΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±Π΅ΠΈΠΌΠΈ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡΠΌΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΎΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΏΡΠΈΠ½ΡΡΠΎΠΉ, Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠΉ, ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ»ΠΎΠΆΠΈΠ»Π°ΡΡ ΠΊ Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠ΅ΠΌΠ°Π»ΡΡ ΠΏΠΎΠ»ΡΠ·Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½Π΅ΡΡΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΈΠ·ΡΡΠΈΠ² ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΏΠΎΠΉΠΌΠ΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΡΠΈΠΏ TCHAR ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΈΠ»ΠΈ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ UNICODE ΠΈ _UNICODE. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΡΠ°ΠΊ:
#ifdef UNICODE
#define TCHAR WCHAR
#else
#define TCHAR CHAR
#endif
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΌΠΈ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ
Π ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ ΡΡΡΠΎΠΊ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΡΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ ΡΠ·ΡΠΊΠΎΠ²ΡΡ ΠΈ ΡΠ΅Π³ΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ , ΠΈΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ , ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ Π½Π° ΡΡΠ°Π΄ΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ Π½Π΅ ΡΡΡΠΎΠΊΠΈ, Π° ΡΠ»ΠΎΠ²Π°,[13] ΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ _tcscmp ΠΈ _tcscmpi Π²Π°ΠΌ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ lstrcmp ΠΈ lstrcmpi. Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠΈΡΠ»ΠΎΠ²ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΏΡΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ ΡΠ»ΠΎΠ² ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ»ΠΎΠ²ΠΎΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΊ ΡΠ°ΠΊΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌ ΡΡΡΠΎΠΊ, ΠΊΠ°ΠΊ coop/co-op ΠΈ were/we're, ΡΠΎ ΠΎΠ½ΠΈ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ.