ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Windows API
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ²Π΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΡ Π±ΡΠΊΠ² ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ SetConsoleTextAttribute. ΠΠ΅ΡΠ²ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, Π° Π²ΡΠΎΡΡΠΌ — ΡΠ²Π΅Ρ Π±ΡΠΊΠ² ΠΈ ΡΠΎΠ½Π°. Π¦Π²Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ (ΡΡΠΌΠΌΠ° ΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ «ΠΠΠ») Π΄Π²ΡΡ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ. ΠΡΠΈΡΠ΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° «ΡΠΌΠ΅ΡΡ» Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²Π΅ΡΠ° ΠΈ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΠΈ, Π½ΠΎ ΠΈ ΡΠ²Π΅ΡΠΎΠ² (ΡΠΌ. ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½ΠΈΠΆΠ΅). Π€ΡΠ½ΠΊΡΠΈΡ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Windows API (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ Π±ΡΠ»ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ «Π₯ΡΠ΄ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ Ρ ΠΎΠ»ΡΡ» Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π² ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΊΡΡΡΠΎΡΠ° ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠ΅ΡΠ°, ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ ΡΡΠΈΡΠ°Π΅Ρ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΊΡΡΡΠΎΡΠ°. Π‘ΠΈΠΌΠ²ΠΎΠ» ΠΏΠ΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΠ³Π»Ρ, ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠ΅ΡΠ°. Π Π½ΠΈΠΆΠ½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡΠ³Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΡΠ΅ΠΊΡΡΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΊΡΡΡΠΎΡΠ° Π² ΠΎΠΊΠ½Π΅.
Π ΠΈΡΡΠ½ΠΎΠΊ 1 — ΠΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
wsprintfA.
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΊΠΈΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΎΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΠΎΠΉ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΠΈ — sprintf. ΠΠ΅ΡΠ²ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π±ΡΡΠ΅Ρ, ΠΊΡΠ΄Π° ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎΡΠΎΠΉ — ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠΎΡΠΌΠ°ΡΠ½ΡΡ ΡΡΡΠΎΠΊΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: «Π§ΠΈΡΠ»Π°: %lu, %lu». ΠΠ°Π»Π΅Π΅ ΠΈΠ΄ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ (Π»ΠΈΠ±ΠΎ ΡΠ°ΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΡΠΈΡΠ»Π°), ΡΠΈΡΠ»ΠΎ ΠΊΠΎΡΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ ΡΠΎΡΠΌΠ°ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ, ΡΠΎ ΡΡΠ΅ΠΊ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ. ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ Π΄Π°Π½ Π½ΠΈΠΆΠ΅. ΠΡΠΎΡΠΎΡΠΈΠΏΠΎΠΌ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ import32. lib (TASM32) Π±ΡΠ΄Π΅Ρ Π½Π΅ wsprintfA, a _wsprintfA (!). ΠΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΡΠΎ Π² EAX Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π° Π΄Π»ΠΈΠ½Π° ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
ADD ESP, N.
ΠΠ°Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ N Π±Π°ΠΉΡ ΡΡΠ΅ΠΊΠ°.
ReadConsoleInput.
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ΅ ΠΈ ΠΌΡΡΠΈ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ:
- 1. Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.
- 2. ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΡΡΠΊΡΡΡΡ (ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΡΠΊΡΡΡ), Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠ±ΡΡΠΈΡΡ , ΠΏΡΠΎΠΈΡΡΠ΅Π΄ΡΠΈΡ Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΡΡ.
- 3. ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ (ΡΡΡΡΠΊΡΡΡ).
- 4. ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ.
GetStdHandle.
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ. ΠΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ:
STD_INPUT_HANDLE equ -10; Π΄Π»Ρ Π²Π²ΠΎΠ΄Π°.
STD_OUTPUT_HANDLE equ -11; Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π°.
STD_ERROR_HANDLE equ -12; Π΄Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
WriteConsoleA.
ΠΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ API WriteConsoleA, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ (ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ) ΠΈΠΌΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΌΡΡΠ».
- Β· 1-ΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ — Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π±ΡΡΠ΅ΡΠ° Π²ΡΠ²ΠΎΠ΄Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ GetStdHandle.
- Β· 2-ΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ — ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π±ΡΡΠ΅Ρ, Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΠΉ ΡΠ΅ΠΊΡΡ.
- Β· 3-ΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ — ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
- Β· 4-ΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ — ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ DWORD, ΠΊΡΠ΄Π° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ²Π΅Π΄Π΅Π½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
- Β· 5-ΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ — ΡΠ΅Π·Π΅ΡΠ²Π½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°Π²Π΅Π½ Π½ΡΠ»Ρ.
ΠΡΡΠ΅Ρ, Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΠΉ ΡΠ΅ΠΊΡΡ, Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΡΡ Π½ΡΠ»Π΅ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
SetConsoleCursorPosition.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΊΡΡΡΠΎΡΠ° Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ SetConsoleCursorPosition ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ:
- Β· 1-ΠΉ, Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.
- Β· 2-ΠΉ, ΡΡΡΡΠΊΡΡΡΠ° COORD:
COORD STRUC.
Π₯ WORD ?
Y WORD ?
COORD ENDS.
SetConsoleTitle
ΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ SetConsoleTitle, Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π΄ΡΠ΅Ρ ΡΡΡΠΎΠΊΠΈ Ρ Π½ΡΠ»Π΅ΠΌ Π½Π° ΠΊΠΎΠ½ΡΠ΅.
FreeConsole.
ΠΠ°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ ΠΊΠΎΠ½ΡΠΎΠ»Ρ.
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ ΠΊΠΎΠ½ΡΠΎΠ»Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² Π½Π°ΡΠ°Π»Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ FreeConsole ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ. ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² «ΡΡΠΆΠΎΠΉ» ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΎΠ½Π° Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΡ ΠΊΠΎΠ½ΡΠΎΠ»Ρ, ΠΏΠΎΡΡΠΎΠΌΡ, ΠΏΠΎΠΊΠ° ΠΌΡ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ FreeConsole, Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π½Π΅ ΡΠΎΠ·Π΄Π°ΡΡ — ΡΡΠΆΠΎΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π·Π°ΠΊΡΡΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ.
AllocConsole.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ API-ΡΡΠ½ΠΊΡΠΈΡ WindowsAllocConsole:
Function AllocConsole Lib «kernel32» Alias DWORD «AllocConsole» ().
ΠΠ· ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΎΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Windowskernel32, ΠΏΠΎΡΡΠΎΠΌΡ Π² ΡΠ΅ΠΊΡΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² Π½Π°ΡΠ΅ΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΎΠ² (kernel32.inc) ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ (kernel32.lib). ΠΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΡAllocConsoleΠ·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ (Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ) Π² ΡΠ΅Π³ΠΈΡΡΡEAXΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½ΠΎΠΉ 4 Π±Π°ΠΉΡΠ° (DWORD). ΠΡΠ»ΠΈ ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ, Π² ΡΠ΅Π³ΠΈΡΡΡEAXΠ±ΡΠ΄Π΅Ρ Π·Π°ΠΏΠΈΡΠ°Π½ Π½ΠΎΠ»Ρ.
CharToOemA.
Windows (ΡΡΡΡΠΊΠΎΡΠ·ΡΡΠ½Π°Ρ) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ Win1251, ΠΊΠΎΠ½ΡΠΎΠ»Ρ — DOS. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΡ Π½Π°Π±ΠΈΡΠ°Π΅ΠΌ Π²ΡΠ΅ ΠΆΠ΅ ΠΏΠΎΠ΄ Windows, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ Π² Π½Π΅ΠΉ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π½Π° ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΠ΅ Π² ΠΏΠ°ΠΌΡΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΏΠΎΠΏΠ°Π΄ΡΡ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ Win1251 ΠΈ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π±ΡΠ΄ΡΡ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π½Π΅ΡΠΈΡΠ°Π΅ΠΌΠΎ. API-ΡΡΠ½ΠΊΡΠΈΡ WindowsCharToOemΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΡΠΎΠΊΠΈ Win1251 Π² DOS, Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠ²ΠΎΠ΄Π° Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΡ, ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΎΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ ΡΠΈΡΡΠ°ΠΌ ΠΈ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠΌ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ, ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ Π² ΠΎΠ±Π΅ΠΈΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°Ρ , ΠΏΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π»Π°ΡΠΈΠ½ΠΈΡΠ° ΠΈ ΡΠΈΡΠ»Π°, ΡΡΠ½ΠΊΡΠΈΡCharToOemΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ.
Π€ΡΠ½ΠΊΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: Function CharToOem Lib «user32» Alias DWORD «CharToOemA» (DWORD lpszSrc, DWORD lpszDst).
Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Windowsuser32, Π² ΡΠ΅ΠΊΡΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠ΅ΡΠ΅Π΄ Π΅Π΅ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΎΠ² (user32.inc) ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ (user32.lib). ΠΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π² ΡΠ΅Π³ΠΈΡΡΡEAXΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½ΠΎΠΉ 4 Π±Π°ΠΉΡΠ°: ΡΡΠ°ΡΡΠΈΠ΅ 3 Π±Π°ΠΉΡΠ° ΡΠ°Π²Π½Ρ Π½ΡΠ»Ρ, ΠΌΠ»Π°Π΄ΡΠΈΠΉ Π±Π°ΠΉΡ ΡΠ°Π²Π΅Π½ 1, Π΅ΡΠ»ΠΈ Π°Π΄ΡΠ΅ΡΠ° ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΠΈ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ° Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ, ΠΏΡΠΈ ΠΈΡ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠΈ — 0.
ΠΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: lpszSrc- (long pointer string zero Source) Π°Π΄ΡΠ΅Ρ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΠ΅ΠΉΡΡ Π½ΡΠ»Π΅ΠΌ ΡΡΡΠΎΠΊΠΈ-ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°;lpszDst- (long pointer string zero Destination) Π°Π΄ΡΠ΅Ρ ΡΡΡΠΎΠΊΠΈ-ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°.
ΠΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΡΡΠΎΠΊ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠΎΠΌ, ΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ Π½Π°Π΄ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈCharToOem. ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΎΡΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π° ΠΈΠ»ΠΈ ΠΎΡ ΡΠΈΡΠ»ΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . Π ΠΊΠΎΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Π½Π΅ ΠΏΠΈΡΠ΅Ρ ΡΡΠ»ΠΎΠ²Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ°, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅Π³ΠΎ Π½Π° Π΅Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ Π² Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ (ΠΏΠΎ Π΅Π΅ ΠΈΠΌΠ΅Π½ΠΈ) ΡΠ²ΡΠ·Π°Π½Π° Ρ ΡΠ΅ΠΌ, ΡΡΠΎ MASM32 Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΠΏΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΠ΅Ρ, Π΅ΡΠ»ΠΈ Π½Π° ΡΠΎ Π΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ, Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»ΠΈΠ½Ρ ΡΡΡΠΎΠΊΠΈ.
Π€ΡΠ½ΠΊΡΠΈΡCharToOemΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΡΡΡΠΎΠΊΠ°-ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΎΠΊΠ°Π½ΡΠΈΠ²Π°Π»Π°ΡΡ Π½ΡΠ»Π΅ΠΌ (string zero, ΠΏΠΎ-Π΄ΡΡΠ³ΠΎΠΌΡnull-terminated). ΠΡΠ»ΠΈ ΠΌΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΄ΠΈΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π°Π΄ΡΠ΅Ρ ΠΈΠ· Π½Π°ΡΠ΅Π³ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π΄Π°Π½Π½ΡΡ , ΠΎΠ½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Ρ ΡΠ΅Π±Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ — Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΅ΠΉ Π°Π΄ΡΠ΅ΡΠ°, Π² ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅ Π΄Π°Π½Π½ΡΡ Π²ΡΠ΅, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π»ΡΠ±ΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠΈ, Π²ΠΏΠ»ΠΎΡΡ Π΄ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²ΡΡΡΠ΅ΡΠΈΠ²ΡΠ΅Π³ΠΎΡΡ Π΅ΠΉ Π½ΡΠ»Ρ. Microsoft MSDN Π½Π°Π·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡCharToOemΠΎΠΏΠ°ΡΠ½ΠΎΠΉ — Π½Π΅Π±ΡΠ΅ΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½Π½Π°Ρ Π² ΠΊΠΎΠ΄, ΠΎΠ½Π° Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° Π²ΡΠ·ΠΎΠ²Π΅Ρ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΡΡΡΠΎΠΊΠ΅-ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΡ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΡΡ Π½ΡΠ»Π΅ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ — Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π»ΠΈΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΡΡΠΎΠΊΠ°-ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π²ΠΌΠ΅ΡΠ°Π»Π°ΡΡ Π² ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ, ΡΠΎ Π΅ΡΡΡ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΡΠ΅ΠΌ ΡΡΡΠΎΠΊΠ°-ΠΈΡΡΠΎΡΠ½ΠΈΠΊ.
SetConsoleTextAttribute.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ²Π΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΡ Π±ΡΠΊΠ² ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ SetConsoleTextAttribute. ΠΠ΅ΡΠ²ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, Π° Π²ΡΠΎΡΡΠΌ — ΡΠ²Π΅Ρ Π±ΡΠΊΠ² ΠΈ ΡΠΎΠ½Π°. Π¦Π²Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ (ΡΡΠΌΠΌΠ° ΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ «ΠΠΠ») Π΄Π²ΡΡ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ. ΠΡΠΈΡΠ΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° «ΡΠΌΠ΅ΡΡ» Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²Π΅ΡΠ° ΠΈ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΠΈ, Π½ΠΎ ΠΈ ΡΠ²Π΅ΡΠΎΠ² (ΡΠΌ. ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½ΠΈΠΆΠ΅).
FOREGROUND_BLUE equ 1h; ΡΠΈΠ½ΠΈΠΉ ΡΠ²Π΅Ρ Π±ΡΠΊΠ².
FOREGROUND_GREEN equ 2h; Π·Π΅Π»Π΅Π½ΡΠΉ ΡΠ²Π΅Ρ Π±ΡΠΊΠ².
FOREGROUND_RED equ 4h; ΠΊΡΠ°ΡΠ½ΡΠΉ ΡΠ²Π΅Ρ Π±ΡΠΊΠ².
FOREGROUND_INTENSITY equ 8h; ΠΏΠΎΠ²ΡΡΠ΅Π½Π½Π°Ρ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡ.
BACKGROUND_BLUE equ 10h; ΡΠΈΠ½ΠΈΠΉ ΡΠ²Π΅Ρ ΡΠΎΠ½Π°.
BACKGROUND_GREEN equ 20h; Π·Π΅Π»Π΅Π½ΡΠΉ ΡΠ²Π΅Ρ ΡΠΎΠ½Π°.
BACKGROUND_RED equ 40h; ΠΊΡΠ°ΡΠ½ΡΠΉ ΡΠ²Π΅Ρ ΡΠΎΠ½Π°.
BACKGROUND_INTENSITY equ 80h; ΠΏΠΎΠ²ΡΡΠ΅Π½Π½Π°Ρ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡ.
SetConsoleScreenBufferSize.
Π€ΡΠ½ΠΊΡΠΈΡ SetConsoleScreenBufferSize ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π±ΡΡΠ΅ΡΠ° ΠΎΠΊΠ½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ. ΠΡΠΎΡ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ Π±ΡΡΠ΅Ρ (ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅ ΠΎΠΊΠ½ΠΎ), Π° ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΅Π³ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ.
- Β· 1-ΠΉ, Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.
- Β· 2-ΠΉ, ΡΡΡΡΠΊΡΡΡΠ° COORD:
COORD STRUC.
Π₯ WORD ?
Y WORD ?
COORD ENDS.