Как создать окно на чистом Си используя только стандартную библиотеку по стандарту?

Всем добрый день. Как можно создать свое окно на голом Си? Возможность такая должна быль, поскольку все сторонние библиотеки с графикой написаны именно на Си. Про windows.h и другие инструменты не писать, хочу своими руками попробовать сделать это.


Ответы (4 шт):

Автор решения: вася

Никак не создать, в стандартной библиотеке нет таких функций и в ближайшее время не будет. Уже было предложение по добавлению 2d графики в C++. Историю предложения и рассуждения, почему ничего вышло, можно почитать тут.

→ Ссылка
Автор решения: avp

Например, используя 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

→ Ссылка
Автор решения: Yaroslav

В стандартной библиотеки Си нет возможности создавать окна , так как это функции ОС. Но используя библиотеку GTK можно создавать окна на чистом Си.

→ Ссылка