Как создать окно на чистом Си используя только стандартную библиотеку по стандарту?
Всем добрый день. Как можно создать свое окно на голом Си? Возможность такая должна быль, поскольку все сторонние библиотеки с графикой написаны именно на Си. Про windows.h и другие инструменты не писать, хочу своими руками попробовать сделать это.
Ответы (4 шт):
Никак не создать, в стандартной библиотеке нет таких функций и в ближайшее время не будет. Уже было предложение по добавлению 2d графики в C++. Историю предложения и рассуждения, почему ничего вышло, можно почитать тут.
Например, используя socket API (вполне стандартно находится в libc) организовать взаимодействие с X-window сервером прямо на X-протоколе.
По сути таким образом вы будете делать свою раелизацию библиотеки X11.
Ну, если Вы используете консольный ввод-вывод в окно ДОС, то можете создать в нём своё собственное окошко с помощью символов псевдографики. Правда, я так поступал ещё в прошлом тысячелетии примерно так:
void Displays::Interface(float snr)
{
int i;
clrscr();
window(10,8,71,19); /* координаты углов окна в виде
кол,стр,кол,стр */
textbackground(BLUE); /* цвет фона */
textcolor(WHITE); /* цвет символов */
clrscr();
cprintf("г=============== Моделирование системы связи ===============¬\r\n");
cprintf("¦ ПАРАМЕТРЫ КАНАЛА ¦\r\n");
cprintf("¦ Объём входного алфавита кода: ¦\r\n");
cprintf("¦ Отношение сигнал-шум [дБ]: ¦\r\n");
cprintf("¦ Вид Модуляции: ¦\r\n");
cprintf("¦ Код: ¦\r\n");
cprintf("¦ ¦\r\n");
cprintf("¦ РЕЗУЛЬТАТ НАБЛЮДЕНИЯ ¦\r\n");
cprintf("¦ Передано символов: ¦\r\n");
cprintf("¦ Поступило ошибок на вход декодера: ¦\r\n");
cprintf("¦ Обнаружено ошибок на выходе декодера: ¦\r\n");
cprintf("L===========================================================-");
gotoxy(46,3);
cout<<P;
gotoxy(46,4);
cout<<snr;
gotoxy (46,5);
cout<<"ФМ-"<<M;
gotoxy (46,6);
for (i=0;i<=V;i++) cprintf("%X",CoderWeit[i]);
return;
}
Этому фрагменту кода более 30 лет и на писан он для окна ДОС ещё в Borland C++ Builder 3.1
В стандартной библиотеки Си нет возможности создавать окна , так как это функции ОС. Но используя библиотеку GTK можно создавать окна на чистом Си.