为什么我把graphics.h复制到devc++的include文件夹下,使用里面的函数时,运行总是说graphics.h出错

#include<stdio.h>#include<graphics.h>main(){intgdrive=DETECT,gmode;registerbgidrive(E... #include<stdio.h>
#include<graphics.h>
main()
{int gdrive=DETECT,gmode;
registerbgidrive(EGAVGA_drive);
initgraph(&gdrive,&gmode,"c:\\tc");
line(100,100,200,200);
getch();
closegraph();
}
这是我运行的程序;
结果是这样:
展开
 我来答
冼宵9m
推荐于2018-03-19 · 超过10用户采纳过TA的回答
知道答主
回答量:18
采纳率:0%
帮助的人:17.9万
展开全部
graphics是turbo c中的DOS图形库,相当古老,在现在的一些机器上可能运行都运行不了。头文件里基本上只是函数声明之类,要正确编译通过还需要对应的库文件。然而你使用的graphics库只有turbo c支持,就算你把头文件和库文件及它的驱动文件都移到dev-c++或什么其他现代编译器里,也没什么卵用。
匿名用户
2021-03-20
展开全部

下载地址:百度网盘链接

将ege ,ege.h ,graphics.h复制到Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include

  • 将压缩包内 

    lib\mingw64\lib

    目录下的 

    libgraphics64.a

    复制,粘贴到 

    C:\Program Files (x86)\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2

    目录下

  • 在上方菜单栏选择 工具->编译选项 填入 -lgraphics64 -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32

    分享一下好代码:

    #include "graphics.h"

    #include <stdio.h>

    #include <time.h>

    #include <stdlib.h>

    #include "ege/fps.h"

    int width = 640, height = 480;

    struct point //定义点,包含坐标,速度

    {

    double x;

    double y;

    double dx;

    double dy;

    };

    struct poly //定义多边形,包含点的个数,和点数组

    {

    int n_point;

    point p[20];

    };

    struct polys //定义多边形队列组

    {

    int n_poly;                 //多边形队列长度

    int color;                  //颜色

    int nextcolor, prevcolor;   //上一次的颜色,目标颜色

    int chtime, nowtime;        //过渡变化时间,当前时间

    int time;                   //距离一下次改变颜色的时间

    poly p[100];                //多边形数组

    };

    double rand_float(double dv, double db) //返回一个db 到 db+dv之间的随机浮点数

    {

    return randomf()*dv + db;

    }

    void movepoint(struct point* b) //根据点的速度属性移动这个点,如果移出屏幕则进行反弹计算

    {

    double dv = 1.0, db = 0.5;

    double tw = width / 640.0, th = height / 480.0;

    if (b->x <0) b->dx = rand_float(dv, db) * tw;

    if (b->y <0) b->dy = rand_float(dv, db) * th;

    if (b->x >width) b->dx = -rand_float(dv, db) * tw;

    if (b->y >height) b->dy = -rand_float(dv, db) * th;

    b->x += b->dx;

    b->y += b->dy;

    }

    void movepoly(struct poly* p) //移动单个多边形,内部调用点的移动

    {

    int i;

    for (i=0; i<p->n_point; ++i)

    {

    movepoint(&(p->p[i]));

    }

    }

    void movepolys(struct polys* p) //移动多边形队列,包含时间检测,颜色计算

    {

    int i;

    for (i=p->n_poly-1; i>0; --i)

    {

    p->p[i] = p->p[i-1];

    }

    movepoly(p->p);

    ++(p->nowtime);

    if (--(p->time) <= 0)

    {

    p->prevcolor = p->color;

    p->nextcolor = HSVtoRGB((float)random(360), 1.0f, (float)rand_float(0.5, 0.5));

    p->time = random(1000);

    p->chtime = random(1000)+60;

    p->nowtime = 0;

    }

    if (p->nowtime >= p->chtime)

    {

    p->color = p->nextcolor;

    }

    else

    {

    double dr = p->prevcolor&0xFF, dg = (p->prevcolor>>8)&0xFF, db = (p->prevcolor>>16)&0xFF;

    double dt = 1 - p->nowtime / (double)(p->chtime);

    dr -= p->nextcolor&0xFF, dg -= (p->nextcolor>>8)&0xFF, db -= (p->nextcolor>>16)&0xFF;

    dr *= dt, dg *= dt, db *= dt;

    dr += p->nextcolor&0xFF, dg += (p->nextcolor>>8)&0xFF, db += (p->nextcolor>>16)&0xFF;

    p->color = ((int)dr) | ((int)dg<<8) | ((int)db<<16);

    }

    }

    void initpolys(struct polys* p, int npoly, int npoint) //初始化多边形队列组

    {

    int i,j;

    p->n_poly = npoly;

    p->color = 0;

    p->time = 1000;

    p->prevcolor = p->color;

    p->nextcolor = HSVtoRGB((float)random(360), 1.0f, 0.5f);

    p->chtime = 1000;

    p->nowtime = 0;

    j = 0;

    p->p[j].n_point = npoint;

    for (i=0; i<npoint; ++i)

    {

    p->p[j].p[i].x = random(width);

    p->p[j].p[i].y = random(height);

    p->p[j].p[i].dx = (randomf() * 2 + 1);

    p->p[j].p[i].dy = (randomf() * 2 + 1);

    }

    for (j=1; j<npoly; ++j)

    {

    p->p[i] = p->p[i-1];

    }

    }

    void draw_poly(struct poly* p, int color) //绘制一个多边形

    {

    int points[100];

    int i;

    for (i=0; i<p->n_point; ++i)

    {

    points[i*2  ] = (int)(p->p[i].x+.5f);

    points[i*2+1] = (int)(p->p[i].y+.5f);

    }

    points[i*2  ] = (int)(p->p[0].x+.5f);

    points[i*2+1] = (int)(p->p[0].y+.5f);

    setcolor(color);

    drawpoly(p->n_point+1, points);

    }

    void draw_polys(struct polys* p) //绘制多边形队列(只画第一个和最后一个,最后一个用于擦除)

    {

    draw_poly(&(p->p[p->n_poly-1]),        0);

    draw_poly(&(p->p[          0]), p->color);

    //for (int i = 0; i < 4; ++i)

    //    draw_poly(&(p->p[i]), p->color);

    }

    int main()

    {

    static struct polys p[10] = {{0}};

    int n_points[10] = {4,3,5,6,7};

    int n_poly[10] = {80,40,10,5,1};

    int n_polys = 2, i;

    randomize();

    //图形初始化

    {

    setinitmode(1, 0, 0);

    initgraph(-1, -1);

    width  = getmaxx();

    height = getmaxy();

    setrendermode(RENDER_MANUAL);

    }

    //多边形对象初始化

    for (i=0; i< n_polys; ++i)

    {

    initpolys(&p[i], n_poly[i], n_points[i]);

    }

    setfont(12, 6, "宋体");

    fps ui_fps;

    //主循环

    for ( ; is_run(); delay_fps(60))

    {

    if (kbhit() > 0) //有按键按下就退出

    {

    break;

    }

    for (i=0; i< n_polys; ++i)

    {

    movepolys(&(p[i]));

    }

    for (i=0; i< n_polys; ++i)

    {

    draw_polys(&(p[i]));

    }

    //imagefilter_blurring(NULL, 0xff, 0x100);

    }

    closegraph();

    return 0;

    }

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式