| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2361 人关注过本帖
标题:[求助]C程序编译后图形不能显示的问题
只看楼主 加入收藏
之梦
Rank: 2
等 级:论坛游民
帖 子:37
专家分:21
注 册:2007-4-5
收藏
 问题点数:0 回复次数:14 
[求助]C程序编译后图形不能显示的问题

有如下程序
#includ"stdio.h"
#include"graphics.h"
#include"stdio.h"
#include"conio.h"
#include"fcntl.h"
#include"stdlib.h"
int main()
{
int gdriver, gmode,i;
detectgraph(&gdriver, &gmode); /*自动测试硬件*/
printf("the graphics driver is %d, mode is %d\n",
gdriver,gmode); /*输出测试结果*/
getch();
initgraph(&gdriver, &gmode, "c:\\tc");
/* 根据测试结果初始化图形*/
setbkcolor(0); /*设置图形背景*/
cleardevice();
for(i=0; i<=15; i++)
{
setcolor(i); /*设置不同作图色*/
circle(320, 240, 20+i*10); /*画半径不同的圆*/
delay(100); /*延迟100毫秒*/
}
for(i=0; i<=15; i++)
{
setbkcolor(i); /*设置不同背景色*/
cleardevice();
circle(320, 240, 20+i*10);
delay(100);
}

getch();
closegraph();
return 0;
}
运行之后显示:the graphics driver is 9, mode is 2 再按回车屏幕一闪,直接退出TC编译器;
我在网上找了很多种办法,都不见效果;曾做如下尝试:
( 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):
该函数告诉连接程序在连接时把EGAVGA的驱动程序装入到用户的执行程序中。)

我的编译器中OPTIONS->LINKER->Libraries->graphics library已经选中了;bgi驱动的目录也没问题;但图形就是不能显示;而且我在TC文件夹下打开cmd命令提示符,运行所生成的可执行文件,结果是屏幕呈现DOS下的那种灰白色彩,但是没有任何文字信息,按alt+Enter后该屏幕被关闭;
我的电脑是XP系统下的;液晶显示器;经过测试有如下信息:
detected graphics drive isVG Amode isVGALO 640*480;
我的屏幕分辨率是1280*1024;屏幕刷新率是60;颜色质量是32位;


由于老师要我们用C设计一个有图形界面的游戏;但我尝试各种方法都不能在屏幕上显示出图形来,所以希望高手来帮帮忙;若有能够在XP下运行的TC,能否发到我的邮箱 9961156@163.com;本人不胜感激;

搜索更多相关主题的帖子: 图形 编译 
2007-10-17 10:19
之梦
Rank: 2
等 级:论坛游民
帖 子:37
专家分:21
注 册:2007-4-5
收藏
得分:0 
有的时候还会出现以下问题:
16位MS-DOS系统
C:\WINDOWS\system32\cmd.exe
NTVDM CPU遇到无效的指令.
CS:c000 IP:f108 OP:63 75 6d 65 6e选择"关闭"终止应用程序
关闭 忽略

有的时候会出现:
输出信号超出范围
在网上找遍资料都无法解决,难道要装双系统不成....

2007-10-17 10:46
hjlwlyhjl
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2006-12-6
收藏
得分:0 

#include"graphics.h"
#include"stdio.h"
#include"stdlib.h"
#include <dos.h>
int main()
{
int gdriver, gmode,i;
detectgraph(&gdriver, &gmode); /*自动测试硬件*/
printf("the graphics driver is %d, mode is %d\n",gdriver,gmode); /*输出测试结果*/
initgraph(&gdriver, &gmode, "c:\\tc");
/* 根据测试结果初始化图形*/
setbkcolor(0); /*设置图形背景*/
cleardevice();
for(i=0; i<=15; i++)
{
setcolor(i); /*设置不同作图色*/
circle(320, 240, 20+i*10); /*画半径不同的圆*/
delay(100000000); /*延迟100毫秒*/
}
for(i=0; i<=15; i++)
{
setbkcolor(i); /*设置不同背景色*/
cleardevice();
circle(320, 240, 20+i*10);
delay(100000000);
}

getch();
closegraph();
return 0;
}

这样就可以了,你的程序有两点错误: 1) 没引进头文件#include <dos.h> 其中含delay()函数。
2)delay()参数设的太小,还没等看的清楚,程序就结束了,所以看不到效果了,把参数设大点就ok了! 还有,对于那些没用的头文件就不要引入了! 多此一举了!


2007-10-17 12:33
鸿工作室
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2007-10-14
收藏
得分:0 
graphics.h-------555...还没用过这个函数库....






2007-10-17 12:58
wzhings
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2007-1-16
收藏
得分:0 
3楼的解法.....在Dev C++里运行,好像报错啊..

在我的眼里,这个世界是由0和1组成的!~
2007-10-17 13:22
copu1
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2007-10-8
收藏
得分:0 

3楼的我拿来编译运行后提示图形模式初始化错误!

以下我在LZ基础上修改的程序!
如果你已经将将EGAVGA.OBJ的目标模块装到GRAPHICS.LIB库文件中就直接编译运行,如果没有装过就请把EGAVGA.BGI复制到.exe同一目录下!

程序我自己已经运行过!
挺好玩的!

#include"stdio.h"
#include"graphics.h"
#include"conio.h"
#include"stdlib.h"
#include "dos.h"
int main()
{
int gdriver=DETECT, gmode=0,i;//楼主没有初始化值
registerbgidriver(EGAVGA_driver);//自动注册硬件

//detectgraph(&gdriver, &gmode); /*自动测试硬件*/
printf("the graphics driver is %d, mode is %d\n",gdriver,gmode); /*输出测试结果*/
getch();
initgraph(&gdriver,&gmode,"");
//initgraph(&gdriver, &gmode, "c:\\tc");
/* 根据测试结果初始化图形*/
setbkcolor(0); /*设置图形背景*/
cleardevice();
for(i=0; i<=15; i++)
{
setcolor(i); /*设置不同作图色*/
circle(320, 240, 20+i*10); /*画半径不同的圆*/
delay(100); /*延迟100毫秒*/
}
for(i=0; i<=15; i++)
{
setbkcolor(i); /*设置不同背景色*/
cleardevice();
circle(320, 240, 20+i*10);
delay(100);
}

getch();
closegraph();
return 0;
}


2007-10-17 15:24
hjlwlyhjl
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2006-12-6
收藏
得分:0 
回复:(copu1)3楼的我拿来编译运行后提示图形模式初...
那是因为你没有改变驱动器初始化路径,这跟各自tc环境所装的路径有关,所以要根据你的tc设定nitgraph(&amp;gdriver,&amp;gmode,"")函数引号中的路径!

2007-10-17 16:09
hjlwlyhjl
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2006-12-6
收藏
得分:0 
回复:(copu1)3楼的我拿来编译运行后提示图形模式初...

在我的机子上设的路径为"E:\\c\\win_tc\\Win-TC\\projects"我怕版主直接照抄过去而出现错误,于是又把它改成了版主所用的路径!


2007-10-17 16:12
copu1
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2007-10-8
收藏
得分:0 

你自己运行下看看!


2007-10-17 16:16
hjlwlyhjl
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2006-12-6
收藏
得分:0 
回复:(copu1)你自己运行下看看!

我已经运行了好几遍了,都没问题的!


2007-10-17 16:18
快速回复:[求助]C程序编译后图形不能显示的问题
数据加载中...
 
   



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

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