| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1350 人关注过本帖
标题:求助图形显示
只看楼主 加入收藏
Karl168
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-9-23
收藏
 问题点数:0 回复次数:6 
求助图形显示
各位大虾,小弟刚学C语言在这里请教一个问题.
昨天我编好一个图形程序,在turbo c上已经通过编译,且点击运行时能显示其图形了,
但当我单独运行其EXE文件时却不能显示图形,错误提示为BGI ERROR。
小弟冥思苦想了两天始终解决不了。
希望大虾能帮忙。
搜索更多相关主题的帖子: 图形 C语言 turbo 
2007-09-23 19:14
starrysky
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:华中科技大学EI -T0405
等 级:版主
威 望:11
帖 子:602
专家分:1
注 册:2005-9-12
收藏
得分:0 

不好意思,我这个版主是专攻 OpenGL 的,对于 TC 的图形设计没有什么发言权。
不过,最迟明天,一笔苍穹 或是 JPG 就会帮你解决的。他们今天好像没上线。

不过,根据我的编程经验,出现这种情况,如果你的程序没错,那么多半就是程序运行时的链接问题了。
那要看看你是否用到某些动态库,在单独运行EXE文件时没有加载。因为在TC中编译时,这些库 编译器都帮你加载好了。

[此贴子已经被作者于2007-9-23 19:53:29编辑过]


我的征途是星辰大海
2007-09-23 19:53
starrysky
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:华中科技大学EI -T0405
等 级:版主
威 望:11
帖 子:602
专家分:1
注 册:2005-9-12
收藏
得分:0 
你用的TC 是 TC 2么?

我的征途是星辰大海
2007-09-23 19:57
starrysky
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:华中科技大学EI -T0405
等 级:版主
威 望:11
帖 子:602
专家分:1
注 册:2005-9-12
收藏
得分:0 

刚才查了下百度,
[QUOTE]
BGI Error: Graphics not initialized (use 'initgraph') 错误的处理方法

Tag: BGI error 在源程序中,放在c:\turbo2下面可以运行,放到其他的目录下不能运行,是因为c:\turbo2下面有egavga.bgi这个文件(这是一个驱动文件),而其他目录下没有。

解决方法有两个:
一:将egavga.bgi和程序一同拷贝到同一个文件夹下。
二:建立一个不需要驱动程序就能独立运行的可执行图形程序,Turbo C中规定用下述步骤(这里以EGA、VGA显示器为例):
1. 在C:\TC子目录下输入命令:BGIOBJ EGAVGA
此命令将驱动程序EGAVGA.BGI转换成EGAVGA.OBJ的目标文件。
2. 在C:\TC子目录下输入命令:TLIB LIB\GRAPHICS.LIB+EGAVGA
此命令的意思是将EGAVGA.OBJ的目标模块装到GRAPHICS.LIB库文件中。
3. 在程序中initgraph()函数调用之前加上一句:
registerbgidriver(EGAVGA_driver);
这样子生成的程序,就可以独立运行。

[/QUOTE]

你看看这样能不能解决

我的征途是星辰大海
2007-09-23 20:00
奔跑的鸟
Rank: 1
等 级:新手上路
帖 子:391
专家分:0
注 册:2006-1-20
收藏
得分:0 
楼上正解,斑竹果然很强

简单的快乐着~
2007-09-23 21:39
Karl168
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-9-23
收藏
得分:0 

版主,情况出现的跟你上面说的一模一样,我今晚会试一下的.
非常感谢你的帮助.
在此向你鞠躬了!
呵呵~

2007-09-23 23:28
eternitelove
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-8-22
收藏
得分:0 
斑竹 我的问题是TC的图形界面的东东根本不能运行
和很多人的问题一样 不是遇到16位什么什么 就是一闪而过
比如
  /* 烟花程序 */
  #include <stdio.h>
  #include <conio.h>
  #include <dos.h>
  #include <math.h>
  #include <graphics.h>
  #include <bios.h>
  #include <stdlib.h>
  #define  PI 3.14159

  void moon()
{
  int x=50,y=50,n=30;
  setcolor(YELLOW);
  setfillstyle(1,YELLOW);
  ellipse(x,y,0,360,n,n);
  ellipse(x+n/2,y,90,270,n,n);
  floodfill(x-n+3,y,YELLOW);
  setcolor(BLACK);
  circle(x,y,n);
  circle(x+n/2,y,n);
}

  void star(int x, int y)
{

  int i,a;
  int n=5;
  int x1[5],y1[5],x2[5],y2[5];
  setcolor(YELLOW);

  for (i=0;i<5;i++)
    {
      x1[i]=x+n*cos(i*72*PI/180);
      y1[i]=y+n*sin(i*72*PI/180);
      x2[i]=x+n/2*cos(i*72*PI/180+PI/5);
      y2[i]=y+n/2*sin(i*72*PI/180+PI/5);
    }

  for(i=0;i<5;i++)
    {
      a=i+1;
      if(a>4) a=0;
      line(x1[i],y1[i],x2[i],y2[i]);
      line(x2[i],y2[i],x1[a],y1[a]);
    }
}

  void drawstar()
{
  int a[]={70,250,190,400,150};
  int b[]={43,27,38,79,90},i;

  setfillstyle(1,14);
  for(i=0;i<5;i++)
   {
     star(a[i],b[i]);
     floodfill(a[i],b[i],YELLOW);
   }
}

  void starflower()
{
  int i=0,j,n=60,n1=2;
  int x=200,y=200,size=100;
  int cover=0;
  int delay1=5000;
  int wid,hei;
  int px,py;
  int color=9;

  while(!kbhit())
   {
     if(i<size)
       {
         for(j=0;j<n;j++)
          {
            px=x+i*cos(j*360/n*PI/180);
            py=y+i*sin(j*360/n*PI/180);
            putpixel(px,py,rand()%16);
            putpixel(px-1,py,color);
            putpixel(px,py+1,color);
            putpixel(px+1,py-1,YELLOW);
            putpixel(px,py-1,YELLOW);
            putpixel(px+1,py,RED);
            putpixel(px+1,py+1,RED);
          }
        }

    if(i>size && cover<size)
      {
        setcolor(BLACK);
        circle(x,y,cover++);
        delay1=1000;
      }
    if(cover==size)
      {
        i=0;
        x=50+rand()%550;
        y=rand()%400;
        cover=0;
        color=rand()%16;
        size=50+rand()%250;
        delay1=10000;
        clearviewport();
        drawstar();
        moon();
      }
    i+=n1;
    delay(delay1);
  }
}
  void main()
{
   int i,j,k;
   int gdriver = DETECT, gmode;
  /* registerbgidriver(EGAVGA_driver); */
   /*int gdriver = VGA, gmode = VGAHI;*/  /* 修改 */
   /*registerbgidriver(EGAVGA_driver); */ /* 修改 */
   initgraph(&gdriver,&gmode,"D:\\tc");
   drawstar();
   moon();
   starflower();
}
用的TC2.0 装在D:\tc,XP的环境
2007-12-06 10:49
快速回复:求助图形显示
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015884 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved