| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 285 人关注过本帖
标题:求助:用 win-tc 运行以下画图程序,出现“NTVDM CPU 遇到无效指令”错误
收藏  订阅  推荐  打印
kelezzp
Rank: 1
等级:新手上路
帖子:2
积分:124
来自:湖南
注册:2008-10-9
求助:用 win-tc 运行以下画图程序,出现“NTVDM CPU 遇到无效指令”错误

我第一次用c编写画图程序,这个是copy下来的,但是我的win-tc运行老是出现错误,按照修该注册表 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\VirtualD
eviceDrivers\\VDD
然后原位置新建一个相同名字的Multi-string Value,命名为VDD,
键值为空。
的方法没有能够解决问题
求助高手帮忙!

运行后的错误显示:
16位 MS-DOS 子系统
D:\PROGRA~1\Win-TC\projects\noname.exe
NTVDM CPU 遇到无效指令
CS:c000 IP:0d2a OP:ff ef e8 qf 45 选择“关闭”终止应用程序。



#include <stdio.h>
#include <graphics.h>
#include <dos.h>
/*这是根据给出的圆心坐标和点坐标分别在八个象限画点的子程序*/
void circlePoint( int xCenter, int yCenter, int x, int y )
{
    putpixel( xCenter + x, yCenter + y, YELLOW );
    putpixel( xCenter - x, yCenter + y, YELLOW );
    putpixel( xCenter + x, yCenter - y, YELLOW );
    putpixel( xCenter - x, yCenter - y, YELLOW );
    putpixel( xCenter + y, yCenter + x, YELLOW );
    putpixel( xCenter - y, yCenter + x, YELLOW );
    putpixel( xCenter + y, yCenter - x, YELLOW );
    putpixel( xCenter - y, yCenter - x, YELLOW );
}

void myCircle(int xCenter,int yCenter,int radius)
{
    int x, y, p;
/*初始化各个参数*/
    x = 0;
    y = radius;
    p = 1 - radius;
    circlePoint(xCenter, yCenter, x, y);
/*循环中计算圆上的各点坐标*/
    while( x < y ) {
        x++;
        if( p < 0 )
            p += 2*x+1;
        else
        {
            y--;
            p+=2*(x-y)+1;
        }
        circlePoint( xCenter, yCenter, x, y);
    }
}

void main()
{
    int gdriver=DETECT, gmode;  /*这是用c画图时必须要使用的图像入口*/
    int i;
    int xCenter, yCenter, radius;
    printf("Please input center coordinate :(x,y) ");
    scanf("%d,%d", &xCenter, &yCenter );
    printf("Please input radius : ");
    scanf("%d", &radius );
/*这条语句初始化整个屏幕并把入口传给gdriver,注意引号中是tc中bgi目录的完整路径*/
    registerbgidriver(EGAVGA_driver);
    initgraph(&gdriver, &gmode, "..\\bgi");  
    setcolor( BLUE );
    myCircle(xCenter, yCenter, radius);
    sleep(3);
    closegraph();
    return;
}
2008-10-10 00:26
yaonai2003
Rank: 1
等级:新手上路
帖子:14
积分:294
注册:2005-9-17

运行了下,结果正常,没有发现你说的错误!
2008-10-15 20:47
奔跑的鸟
Rank: 3Rank: 3
等级:中级会员
帖子:328
积分:3848
注册:2006-1-20

如果是新安装的win-tc则需要重启机器,否则会这样的

简单的快乐着~
2008-11-17 15:12
共有 284 人关注过本帖
发新话题
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.073964 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved