Erro no programa gráfico usando C (Ubuntu 14.04)

0

Sobre este tópico Como faço para usar gráficos. h no Ubuntu? , executei o seguinte programa (mostrado abaixo do bloco), mas o programa infelizmente termina automaticamente após alguns segundos com a seguinte mensagem:

$ gcc -o DDA.o DDA.c -lgraph
$ DDA.o
[xcb] Unknown sequence number while processing queue
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
DDA.o: ../../src/xcb_io.c:274: poll_for_event: Assertion '!xcb_xlib_threads_sequence_lost' failed.
#include <graphics.h>
#include <stdio.h>
#define ROUND(a) ((int) (a+0.5))
#include <X11/Xlib.h>

main()
{
    int gd = DETECT,gm,left=100,top=100,right=200,bottom=200,x=300,y=150,radius=50;
    initgraph(&gd,&gm,NULL);
    rectangle(left, top, right, bottom);
    circle(x, y, radius);
    bar(left + 300, top, right + 300, bottom);
    line(left - 10, top + 150, left + 410, top + 150);
    ellipse(x, y + 200, 0, 360, 100, 50);
    outtextxy(left + 100, top + 325, "C Graphics Program");
    delay(5000);
    closegraph();
    return 0;
}

PS: Eu odeio programar em TC ++ (usando o DOSBOX). SE VOCÊ NÃO CONHECE A SOLUÇÃO, POR FAVOR, RECOMENDA-ME ALGO EM QUE POSSO EXECUTAR COM SEGURANÇA OS PROGRAMAS GRÁFICOS EM C ON:)

    
por Bateman 20.08.2015 / 08:34

3 respostas

0

Quando estudei a linguagem de programação C / C ++, usamos uma biblioteca chamada Allegro , que parecia ser uma boa & amp; biblioteca fácil de fazer programação gráfica em.

link

    
por impalle 20.08.2015 / 10:29
0

Você tem que chamar a função initgraph dentro do seu programa gráfico C passando o caminho da sua biblioteca BGI (interface gráfica da Borland) para inicializar o driver gráfico. Ele inicializa o sistema gráfico carregando o driver gráfico transmitido e, em seguida, alterando o sistema para o modo gráfico. Ele também redefine ou inicializa todas as configurações gráficas, como cor, paleta, posição atual, etc., para seus valores padrão.

driverDirectoryPath : Especifica o caminho do diretório onde os arquivos do driver gráfico (arquivos BGI) estão localizados. Se o caminho do diretório não for fornecido, ele procurará arquivos do driver no diretório atual do diretório de trabalho.  Verifique este link do programa de amostra     

por Akbar Khan 17.09.2016 / 22:17
0

Você pode adicionar a seguinte função antes de fechar o gráfico para ver a saída estável. Funcionou para mim!

void wait_for_char () {

//Wait for a key press
int in = 0;

while (in == 0) {
    in = getchar();
}

}

    
por S.J 26.01.2018 / 10:31