为什么用c语言画图总蓝屏?
补充:谁能告诉我?
补充:谁能告诉我?
答案:你用tc画图,估计用的不是标准库函数吧
========================================
我用的就是grahpics.h,wintc 就是trubo的内核
--------------------------------------------------------
我用的是win-tc和turbo c,用标准c函数画图
我用的就是grahpics.h,wintc 就是trubo的内核
---------
你画图不是用的标准c,其他的编译器估计没办法
检查一下程序吧还是,:)
--------------------------------------------------------
程序是没问题的 运行源代码也会蓝屏
--------------------------------------------------------
是否是 文本模式 和 图形模式 频繁切换造成的?
可以的话,
建议楼主单步运行程序,
直到找到错误的发生语句,
然后查找所有之前的和这个错误语句相关的语句(比如操作相同变量的语句)。
--------------------------------------------------------
或者楼主试试更换图形驱动试试,
就是 环境目录下的那个 BGI 文件。
--------------------------------------------------------
一般情况下,
认为是你的代码有问题。
因为在简单绘图情况下,
(比如只是启动图形模式,绘制一条直线)
这样的程序,
楼主试试运行多次会不会蓝屏,
如果会,检查你的环境、图形驱动......
--------------------------------------------------------
运行简单的图形也会蓝屏,因为我画的就是一个正方形
我认为是切换全屏以后,驱动造成的问题!
所以怎么检查图形驱动?
--------------------------------------------------------
建议楼主单步运行程序
===================
每一次都是运行5,6次以后就蓝屏,也就是前4次都是输出正确的图形,所以程序肯定是正确的
--------------------------------------------------------
代码帖出来大家看看,我不相信程序没问题,呵呵
--------------------------------------------------------
每一次都是运行5,6次以后就蓝屏,也就是前4次都是输出正确的图形,所以程序肯定是正确的
-----------
前几次正确就说明代码没问题了?
你这样的结果八成是代码问题,你所说的输出正确图形只不过是表面现象而已
--------------------------------------------------------
代码如下:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int main(void)
{
int gdriver = DETECT, gmode;
void *ball;
int x, y,maxx;
unsigned int size;
initgraph(&gdriver, &gmode, "");
maxx = getmaxx();
x = 0;
y = 200;
rectangle(x,y+11,x+20,y+31);
circle(x+10,y,10);
size = imagesize(x, y-10, x+20, y+10);
ball = malloc(size);
getimage(x, y-10, x+20, y+10, ball);
while (!kbhit())
{
putimage(x, y-10, ball, XOR_PUT);
x += 10;
if (x >= maxx)
x = 0;
putimage(x, y-10, ball, XOR_PUT);
delay(100);
}
free(ball);
closegraph();
return 0;
}
上一个:C语言数据结构的插入问题
下一个:用C语言编程输出菱形 图案