ошибка графики программы c

Я реализовал алгоритм заполнения границ на языке C со следующим кодом:

/* WAP to fill the polygon using boundary fill 4 connected algo */

#include "stdio.h"
#include "conio.h"
#include "graphics.h"
#include "dos.h"

void main()
{

    int gd = DETECT, gm;
    clrscr();

    detectgraph(&gd, &gm);
    initgraph(&gd, &gm , "C:\\TC\\BGI");

    rectangle(60,60,500,500);
    boundary_fill(65,65,4,15);
    getch();
    closegraph();
}

boundary_fill(int x, int y, int fclr, int bclr)
{

    if(getpixel(x,y)!= bclr && getpixel(x,y)!= fclr)
    {
        putpixel(x,y,fclr);
        boundary_fill(x+1,y,fclr,bclr);
        boundary_fill(x-1,y,fclr,bclr);
        boundary_fill(x,y+1,fclr,bclr);
        boundary_fill(x,y-1,fclr,bclr);

    }
}

когда я его компилирую, ошибок не возникает. Но когда я запускаю программу, окно закрывается, и я получаю следующую ошибку: -- C:\TC\BIN\TC.EXE Процессор NTVDM обнаружил недопустимую инструкцию.. . . . . .

Пожалуйста помоги


person Vishu Singhvi    schedule 18.10.2012    source источник
comment
у тебя в турбоке есть папка bgi?   -  person Bhavik Shah    schedule 18.10.2012
comment
Не запускайте никакие DOS-приложения напрямую в Windows после XP/Server 2003. Используйте как минимум DosBox.   -  person Alexey Frunze    schedule 18.10.2012
comment
Это недопустимо. C. main() должен возвращать int, так как это размещенное приложение. border_fill должен возвращать значение и иметь прототип функции. Вы должны включать заголовки стандартной библиотеки, используя синтаксис ‹stdio.h›, а не stdio.h. Вы неправильно изучаете программирование на C, потому что используете устаревший нестандартный компилятор!   -  person Lundin    schedule 18.10.2012


Ответы (1)


прекратите использовать турбо-C. вместо этого запускайте свои 16-битные программы (такие как TurboC/C++) с помощью DosBox. Ошибка NTVDM возникает из-за того, что 32-битная командная строка пытается запустить 16-битную программу.

person Aniket Inge    schedule 18.10.2012
comment
@ Вишу Сингхви, что ты пробовал? - person Aniket Inge; 18.10.2012
comment
Я пытался реализовать программу с помощью DosBox. Но выходит та же ошибка. - person Vishu Singhvi; 19.10.2012