Търся...

14 отговора 617 прегледа
#1

Търся...

...библиотека за С, съдържаща фунции като window(), gotoxy(), settextcolor(), setbkcolor() и др.... или подобни на тях, които ще улеснят създаването на прозорци, менюта и т.н.

Благодаря ви предварително

...нормалното състояние на нещата е да са повредени..., защо тогава да ги поправяме?
Отговор
в отговор на ¤ asamus ergin ¤ #2

Re: Търся...

na borland c++ 3.1 imashe takava biblioteka :) sigurno i segashnite borlandski compileri si go imat tva neshto

niakade na codeguru ili codeproject imashe podobni divotii za vc++
udari edin search

Agent Orange
Отговор
в отговор на dijkstra #3

Re: Търся...

за с++ има, но на мен ми трябват за с
search-а ми беше без резултат :(

...нормалното състояние на нещата е да са повредени..., защо тогава да ги поправяме?
Отговор
в отговор на ¤ asamus ergin ¤ #4

GUI Toolkit page

[линк]

za chisto C - ima GTK, obache kato gledam ti iskash gotoxy(), settextcolor(), setbkcolor() - koeto navjava TEXTOV rezhim - mozhe bi trjawba da vidish "ncurses" bibliotekata (za Linux, i Win32 prez CygWin).

tirulirutatuutuu
Отговор
в отговор на ¤ asamus ergin ¤ #5

Re: Търся...

Библиотеката conio.h в Борландските компилатори ги съдържа всички тези
неща които ти трябват.
Мисля че става и за С само.
Надявам се това да ти помогне...

Отговор
в отговор на pq #6

Re: Търся...

Знам, че ги има, но не ми е позволено да ги използвам

...нормалното състояние на нещата е да са повредени..., защо тогава да ги поправяме?
Отговор
в отговор на malkia #7

Re: GUI Toolkit page

Благодаря, ще погледна

...нормалното състояние на нещата е да са повредени..., защо тогава да ги поправяме?
Отговор
в отговор на ¤ asamus ergin ¤ #8

курсова задача а?

... Предполагам че искат да им направиш прозорец с меню и т.н.....
Гадна работа .... Виж това може да ти свърши някаква работа:

// отпечатва текст на екрана с координати x, y и със атрибути (цвят и фон) attr
void my_puttextXY(int x, int y, char *text, int attr)
{
unsigned char *vmem = (unsigned char *)(0xB0000000UL) ;
vmem += x + y * 160 ;
while (*text)
{
*(vmem++) = attr ; // а може би беше *text++
*(vmem) = *text++ ; // а тука attr... пробвай
}
}

с помоща на тази финкция може да направиш всичко останало.

Отговор
в отговор на darklord #9

Re: курсова задача а?

0xB0000000 (0xB000:0000) - ne beshe li ako si w Mode 7 (Hercules/MGA)

w mode 3 (puk i 0,1,2) ne beshe li ot 0xB800:0000

wupreki che na 0000:0467 - ili negde tam blizhe (0463??) se zapiswashe w koj rezhim si - ma tez raboti otpredi 9-10 godini - de sja da si gi spomnjam!?!?!?

tirulirutatuutuu
Отговор
в отговор на malkia #10

Re: курсова задача а?

Благодара ви! Точно това търсех!

Между дугото... за mode 3 наистина е B800:0000
...нормалното състояние на нещата е да са повредени..., защо тогава да ги поправяме?

Редактирано от ¤ asamus ergin ¤ на

Отговор
в отговор на darklord #11

Re: курсова задача а?

Странно, но не се получава и по двата начина....
намерих функция, подобна на тази, която прави същото.... или би трябвало да прави същото, но и при нея резултат няма.
Интересното е, че няма никакви промени по екранната памет (не се променя написан вече там текст, например).

...нормалното състояние на нещата е да са повредени..., защо тогава да ги поправяме?
Отговор
в отговор на ¤ asamus ergin ¤ #12

... да изясним задачата

1. Операционна система... това работи за MS Dos и за Dos прозорец под Win...
Пробвал съм го със компилатора BC3.1... но компилатора няма нищо общо с това...
2. Предполагам, че си забелязал че пойнтъра трябва да сочи към 0xB8000000...
3. Какво по-точно се случва, когато извикаш функцията?
4. пробвай тази програмка...
void main()
{asm
{
mov ax, 0xb800
mov es, ax
xor di, di
mov cx, 2000
rep movsw
}
}
ако тя не ти запълни екрана с глупости значи наистина нещо се е спекло...

Отговор
в отговор на darklord #13

Re: курсова задача а?

Това работи само за монохромен адаптер.
За цветен трябва да се сложи 0xB8000000UL

Отговор
в отговор на ¤ asamus ergin ¤ #14

Re: курсова задача а?

Ia probvai taka:
unsigned char far *vmem = (unsigned char far *)(0xB8000000UL) ;
vmem += x * 160 + y * 2 ;

Отговор
в отговор на lnfoMatic #15

Re: курсова задача а?

Опитах следното:
char far *pv;
pv = (char far *)0xb8000000 + y*160 + x*2;
*pv++=c;
*pv=(b<<2)|f;
...и се получи.
Много се радвам!

...нормалното състояние на нещата е да са повредени..., защо тогава да ги поправяме?
Отговор