0,0 → 1,165 |
console.obj ýêñïîðòèðóåò ñëåäóþùèå ôóíêöèè: |
|
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), òî ñîîòâåòñòâóþùàÿ êîîðäèíàòà êóðñîðà íå ìåíÿåòñÿ. |