166 lines
7.2 KiB
Plaintext
166 lines
7.2 KiB
Plaintext
console.dll ¤ъёяюЁЄшЁєхЄ ёыхфє■∙шх ЇєэъЎшш:
|
|
|
|
typedef unsigned long dword; /* 32-сшЄэюх схччэръютюх Ўхыюх */
|
|
typedef unsigned short word; /* 16-сшЄэюх схччэръютюх Ўхыюх */
|
|
|
|
void __stdcall con_init(dword wnd_width, dword wnd_height,
|
|
dword scr_width, dword scr_height, const char* title);
|
|
╚эшЎшрышчрЎш ъюэёюыш. ┬√ч√трхЄё юфшэ Ёрч т эрўрых яЁюуЁрьь√.
|
|
wnd_width, wnd_height - т√ёюЄр ш °шЁшэр (т ёшьтюырї) тшфшьющ т юъэх ъюэёюыш
|
|
юсырёЄш;
|
|
scr_width, scr_height - т√ёюЄр ш °шЁшэр (т ёшьтюырї) тёхщ ъюэёюыш;
|
|
ы■с√х шч яхЁт√ї 4 ярЁрьхЄЁют ьюуєЄ с√Є№ єёЄрэютыхэ√ т -1 (=0xFFFFFFFF)
|
|
- шёяюы№чютрЄ№ чэрўхэш яю єьюыўрэш■;
|
|
title - чруюыютюъ юъэр ъюэёюыш.
|
|
|
|
void __stdcall con_exit(bool bCloseWindow);
|
|
┬√ч√трхЄё яЁш чртхЁ°хэшш яЁюуЁрьь√. ┼ёыш (срщЄют√щ) ярЁрьхЄЁ bCloseWindow
|
|
эєыхтющ, Єю юъэю ъюэёюыш юёЄр╕Єё эр ¤ъЁрэх фю Єюую ьюьхэЄр, ъръ яюы№чютрЄхы№
|
|
яюцхырхЄ чръЁ√Є№ хую, яЁш ¤Єюь ъ чруюыютъє фюсрты хЄё ёЄЁюър " [Finished]".
|
|
|
|
void __stdcall con_set_title(const char* title);
|
|
╙ёЄрэртыштрхЄ эют√щ чруюыютюъ юъэр ъюэёюыш.
|
|
|
|
void __stdcall con_write_asciiz(const char* string);
|
|
┬√тюфшЄ ASCIIZ-ёЄЁюъє т ъюэёюы№ т Єхъє∙є■ яючшЎш■, яЁюфтшурхЄ Єхъє∙є■ яючшЎш■.
|
|
|
|
void __stdcall con_write_string(const char* string, dword length);
|
|
└эрыюушўэю con_write_asciiz, эю т√тюфшЄ Ёютэю length ёшьтюыют.
|
|
|
|
int __cdecl con_printf(const char* format, ...)
|
|
╤ЄрэфрЁЄэр printf шч ANSI C.
|
|
|
|
dword __stdcall con_get_flags(void);
|
|
╧юыєўрхЄ чэрўхэшх Їыруют т√тюфр.
|
|
dword __stdcall con_set_flags(dword new_flags);
|
|
╙ёЄрэртыштрхЄ чэрўхэшх Їыруют т√тюфр. ┬ючтЁр∙рхЄ ёЄрЁюх чэрўхэшх.
|
|
╘ыруш (сшЄютр ьрёър):
|
|
/* ЎтхЄ ЄхъёЄр */
|
|
#define CON_COLOR_BLUE 1
|
|
#define CON_COLOR_GREEN 2
|
|
#define CON_COLOR_RED 4
|
|
#define CON_COLOR_BRIGHT 8
|
|
/* ЎтхЄ Їюэр */
|
|
#define CON_BGR_BLUE 0x10
|
|
#define CON_BGR_GREEN 0x20
|
|
#define CON_BGR_RED 0x40
|
|
#define CON_BGR_BRIGHT 0x80
|
|
/* єяЁртыхэшх т√тюфюь */
|
|
#define CON_IGNORE_SPECIALS 0x100
|
|
/* ┼ёыш Їыру ёсЁю°хэ, ЇєэъЎш шэЄхЁяЁхЄшЁєхЄ ёяхЎшры№э√х ёшьтюы√:
|
|
10 ('\n') - яхЁхтюф т эрўрыю ёыхфє■∙хщ ёЄЁюъш
|
|
13 ('\r') - яхЁхтюф т эрўрыю Єхъє∙хщ ёЄЁюъш
|
|
8 ('\b') - чрсющ (эр ёшьтюы эрчрф)
|
|
9 ('\t') - Єрсєы Ўш
|
|
27 ('\033'='\x1B') - эрўрыю Esc-яюёыхфютрЄхы№эюёЄш;
|
|
шэрўх т√тюфшЄ шї ъръ юс√ўэ√х ёшьтюы√. */
|
|
/* ╧юффхЁцштрхь√х Esc-яюёыхфютрЄхы№эюёЄш:
|
|
Esc[<number1>;<number2>;<number3>m - т√сюЁ рЄЁшсєЄют ёшьтюыют:
|
|
ьюцэю єърч√трЄ№ юфшэ, фтр шыш ЄЁш ъюфр т ы■сюь яюЁ фъх;
|
|
0 = эюЁьры№эюх шчюсЁрцхэшх (схы√х ёшьтюы√ эр ў╕Ёэюь Їюэх)
|
|
1 = т√фхыхэшх ЁъюёЄ№■
|
|
5 = Ёъшщ Їюэ
|
|
7 = ЁхтхЁёэюх шчюсЁрцхэшх (ў╕Ёэ√х ёшьтюы√ эр схыюь Їюэх)
|
|
30 = ў╕Ёэ√х ёшьтюы√
|
|
31 = ъЁрёэ√х ёшьтюы√
|
|
32 = чхы╕э√х ёшьтюы√
|
|
33 = ц╕ыЄ√х ёшьтюы√
|
|
34 = ёшэшх ёшьтюы√
|
|
35 = ЇшюыхЄют√х ёшьтюы√
|
|
36 = сшЁ■чют√х ёшьтюы√
|
|
37 = схы√х ёшьтюы√
|
|
40 = ў╕Ёэ√щ Їюэ
|
|
41 = ъЁрёэ√щ Їюэ
|
|
42 = чхы╕э√щ Їюэ
|
|
43 = ц╕ыЄ√щ Їюэ
|
|
44 = ёшэшщ Їюэ
|
|
45 = ЇшюыхЄют√щ Їюэ
|
|
46 = сшЁ■чют√щ Їюэ
|
|
47 = схы√щ Їюэ
|
|
╤ыхфє■∙шх яюёыхфютрЄхы№эюёЄш яю тшышё№ т тхЁёшш 5 сшсышюЄхъш:
|
|
Esc[2J - юўшёЄшЄ№ ¤ъЁрэ, яхЁхьхёЄшЄ№ ъєЁёюЁ т ыхт√щ тхЁїэшщ єуюы
|
|
Esc[<number1>;<number2>H = Esc[<number1>;<number2>f -
|
|
єёЄрэютшЄ№ ъєЁёюЁ т яючшЎш■ ё ъююЁфшэрЄрьш <number1>,<number2>
|
|
Esc[<number>A - яхЁхьхёЄшЄ№ ъєЁёюЁ эр <number> ёЄЁюъ ттхЁї
|
|
Esc[<number>B - яхЁхьхёЄшЄ№ ъєЁёюЁ эр <number> ёЄЁюъ тэшч
|
|
Esc[<number>C - яхЁхьхёЄшЄ№ ъєЁёюЁ эр <number> яючшЎшщ тяЁртю
|
|
Esc[<number>D - яхЁхьхёЄшЄ№ ъєЁёюЁ эр <number> яючшЎшщ тыхтю
|
|
*/
|
|
/* ёшуэры ю чръЁ√Єшш юъэр ъюэёюыш; яю тшыё т тхЁёшш 6 сшсышюЄхъш;
|
|
Їыру шуэюЁшЁєхЄё ЇєэъЎшхщ con_set_flags */
|
|
#define CON_WINDOW_CLOSED 0x200
|
|
╟эрўхэшх яю єьюыўрэш■ фы Їыруют = 7.
|
|
|
|
int __stdcall con_get_font_height(void);
|
|
┬ючтЁр∙рхЄ чэрўхэшх т√ёюЄ√ °ЁшЇЄр.
|
|
|
|
int __stdcall con_get_cursor_height(void);
|
|
╧юыєўрхЄ чэрўхэшх т√ёюЄ√ ъєЁёюЁр.
|
|
int __stdcall con_set_cursor_height(int new_height);
|
|
╙ёЄрэртыштрхЄ чэрўхэшх т√ёюЄ√ ъєЁёюЁр. ┬ючтЁр∙рхЄ ёЄрЁюх чэрўхэшх.
|
|
╧юя√Єър єёЄрэютшЄ№ чэрўхэшх тэх ъюЁЁхъЄэюую шэЄхЁтрыр (юЄ 0 фю font_height-1)
|
|
шуэюЁшЁєхЄё .
|
|
╩єЁёюЁ т√ёюЄ√ 0 эх юЄюсЁрцрхЄё эр ¤ъЁрэх.
|
|
╟эрўхэшх т√ёюЄ√ яю єьюыўрэш■ - 15% юЄ т√ёюЄ√ °ЁшЇЄр.
|
|
|
|
int __stdcall con_getch(void);
|
|
╤ўшЄ√трхЄ юфшэ ёшьтюы ё ъыртшрЄєЁ√.
|
|
─ы юс√ўэ√ї ёшьтюыют тючтЁр∙рхЄё ASCII-ъюф. ─ы Ёрё°шЁхээ√ї ёшьтюыют
|
|
(эряЁшьхЁ, Fx ш ёЄЁхыюўхъ) яхЁт√щ т√чют ЇєэъЎшш тючтЁр∙рхЄ 0,
|
|
р яютЄюЁэ√щ т√чют тючтЁр∙рхЄ Ёрё°шЁхээ√щ ъюф (яюфюсэю DOS-ЇєэъЎш ь ттюфр).
|
|
═рўшэр ё тхЁёшш 7 сшсышюЄхъш, яюёых чръЁ√Єш юъэр ъюэёюыш тючтЁр∙рхЄё
|
|
чэрўхэшх 0.
|
|
|
|
word __stdcall con_getch2(void);
|
|
╤ўшЄ√трхЄ юфшэ ёшьтюы ё ъыртшрЄєЁ√. ╠ырф°шщ срщЄ ёюфхЁцшЄ ASCII-ъюф ъыртш°ш
|
|
(0 фы Ёрё°шЁхээ√ї ёшьтюыют), ёЄрЁ°шщ - Ёрё°шЁхээ√щ ъюф
|
|
(яюфюсэю BIOS-ЇєэъЎш ь ттюфр).
|
|
═рўшэр ё тхЁёшш 7 сшсышюЄхъш, яюёых чръЁ√Єш юъэр ъюэёюыш тючтЁр∙рхЄё
|
|
чэрўхэшх 0.
|
|
|
|
int __stdcall con_kbhit(void);
|
|
┬ючтЁр∙рхЄ 1, хёыш ърър -Єю ъыртш°р с√ыр эрцрЄр, 0 шэрўх. ─ы ёўшЄ√трэш
|
|
эрцрЄющ ъыртш°ш яЁхфэрчэрўхэ√ ЇєэъЎшш con_getch ш con_getch2.
|
|
═рўшэр ё тхЁёшш 6 сшсышюЄхъш, яюёых чръЁ√Єш юъэр ъюэёюыш тёхуфр тючтЁр∙рхЄ 1.
|
|
|
|
char* __stdcall con_gets(char* str, int n);
|
|
╤ўшЄ√трхЄ ёЄЁюъє ё ъыртшрЄєЁ√. ┬тюф яЁхЁ√трхЄё яЁш яюёЄєяыхэшш ёшьтюыр
|
|
эютющ ёЄЁюъш, р Єръцх яю яЁюўЄхэшш n-1 ёшьтюыр (т чртшёшьюёЄш юЄ Єюую, ўЄю
|
|
яЁюшчющф╕Є Ёрэ№°х). ┬ яхЁтюь ёыєўрх ёшьтюы эютющ ёЄЁюъш Єръцх чряшё√трхЄё т
|
|
str. ╤ўшЄрээр ёЄЁюър фюяюыэ хЄё эєыхт√ь ёшьтюыюь.
|
|
═рўшэр ё тхЁёшш 6 сшсышюЄхъш, ЇєэъЎш тючтЁр∙рхЄ єърчрЄхы№ эр ттхф╕ээє■
|
|
ёЄЁюъє яЁш єёях°эюь ўЄхэшш ш NULL, хёыш юъэю ъюэёюыш с√ыю чръЁ√Єю. ─ю тхЁёшш
|
|
6 тючтЁр∙рхьюх чэрўхэшх с√ыю эхюяЁхфхыхэю.
|
|
|
|
typedef int (__stdcall * con_gets2_callback)(int keycode, char** pstr, int* pn, int* ppos);
|
|
char* __stdcall con_gets2(con_gets2_callback callback, char* str, int n);
|
|
╘єэъЎш яю тшырё№ т тхЁёшш 4 сшсышюЄхъш.
|
|
╧юыэюёЄ№■ рэрыюушўэр con_gets чр шёъы■ўхэшхь Єюую, ўЄю ъюуфр яюы№чютрЄхы№
|
|
эрцшьрхЄ эхЁрёяючэрээє■ ъыртш°є, т√ч√трхЄё єърчрээр callback-яЁюЎхфєЁр
|
|
(ъюЄюЁр ьюцхЄ, эряЁшьхЁ, юсЁрсрЄ√трЄ№ up/down фы шёЄюЁшш ттюфр ш tab фы
|
|
ртЄюфюяюыэхэш ). ╧ЁюЎхфєЁх яхЁхфр╕Єё ъюф ъыртш°ш ш ЄЁш єърчрЄхы - эр ёЄЁюъє,
|
|
эр ышьшЄ ш эр Єхъє∙є■ яючшЎш■ т ёЄЁюъх. ╧ЁюЎхфєЁр ьюцхЄ ьхэ Є№ ёюфхЁцшьюх
|
|
ёЄЁюъш ш ьюцхЄ ьхэ Є№ ёрьє ёЄЁюъє (эряЁшьхЁ, яхЁхЁрёяЁхфхышЄ№ ярь Є№ фы
|
|
єтхышўхэш ышьшЄр), ышьшЄ, яючшЎш■ т ёЄЁюъх - фы ¤Єюую ш яхЁхфр■Єё єърчрЄхыш.
|
|
┬ючтЁр∙рхьюх чэрўхэшх: 0=ёЄЁюър эх ьхэ ырё№; 1=ёЄЁюър шчьхэшырё№, эхюсїюфшью
|
|
єфрышЄ№ ёЄрЁє■ ш т√тхёЄш эютє■; 2=ёЄЁюър шчьхэшырё№, эхюсїюфшью х╕ т√тхёЄш;
|
|
3=эхьхфыхээю т√щЄш шч ЇєэъЎшш.
|
|
═рўшэр ё тхЁёшш 6 сшсышюЄхъш, ЇєэъЎш тючтЁр∙рхЄ єърчрЄхы№ эр ттхф╕ээє■
|
|
ёЄЁюъє яЁш єёях°эюь ўЄхэшш ш NULL, хёыш юъэю ъюэёюыш с√ыю чръЁ√Єю. ─ю тхЁёшш
|
|
6 тючтЁр∙рхьюх чэрўхэшх с√ыю эхюяЁхфхыхэю.
|
|
|
|
void __stdcall con_cls();
|
|
╘єэъЎш яю тшырё№ т тхЁёшш 5 сшсышюЄхъш.
|
|
╬ўш∙рхЄ ¤ъЁрэ ш яхЁхтюфшЄ ъєЁёюЁ т ыхт√щ тхЁїэшщ єуюы.
|
|
|
|
void __stdcall con_get_cursor_pos(int* px, int* py);
|
|
╘єэъЎш яю тшырё№ т тхЁёшш 5 сшсышюЄхъш.
|
|
╟ряшё√трхЄ т *px Єхъє∙є■ ъююЁфшэрЄє ъєЁёюЁр яю юёш x, т *py - яю юёш y.
|
|
|
|
void __stdcall con_set_cursor_pos(int x, int y);
|
|
╘єэъЎш яю тшырё№ т тхЁёшш 5 сшсышюЄхъш.
|
|
╙ёЄрэртыштрхЄ ъєЁёюЁ т яючшЎш■ ё єърчрээ√ьш ъююЁфшэрЄрьш. ┼ёыш ъръющ-Єю шч
|
|
ярЁрьхЄЁют т√їюфшЄ чр яЁхфхы√ ёююЄтхЄёЄтє■∙хую фшрярчюэр (юЄ 0 фю scr_width-1
|
|
фы x, юЄ 0 фю scr_height-1 фы y, scr_width ш scr_height с√ыш чрфрэ√ яЁш
|
|
т√чютх con_init), Єю ёююЄтхЄёЄтє■∙р ъююЁфшэрЄр ъєЁёюЁр эх ьхэ хЄё .
|