注册 登录
编程论坛 C++教室

有个头文件tc能通过而用vs2010报错误

千岛龙崎 发布于 2011-04-03 13:40, 486 次点击
cursor.h 的代码如下:

#ifndef _CURSOR_H
#define _CURSOR_H
#include<dos.h>
void setcursor(int ctop,int cbot)
{
    union REGS regs;
    if(cbot>13) cbot=13;
    if(ctop<0) ctop=0;
    if((ctop==0)&&(cbot==0)) regs.h.ch=0x20;
    else
    {
        regs.h.ch=ctop;
        regs.h.cl=cbot;
    }
    regs.h.ah=1;
    int86(0x10,&regs,&regs);
}
void setnocursor(void)
{
    setcursor(0,0);
}
void setnormalcursor(void)
{
    setcursor(12,13);
}

#endif


vs2010说共用体regs无定义,我看也好像真的,问题是这作业文件是老师给的,并且用TC3编译没问题,运行也没问题,本人刚学C语言,考虑到可能是vs2010的问题就来这提问了,希望大虾们看看,给点意见,我快崩溃了
2 回复
#2
千岛龙崎2011-04-03 16:29
看没人回答,我自己在网上搜了几小时,终于知道点大概,果然是编译器问题。
查看VC和TC的dos.h头文件就可以知道,两者内容不同,其实还有很多头文件不同。
tc可以直接对MS-dos操作,而vc是对windows的,所以没有相应的函数,所以移植一些对MS-dos的
程序时就会出错,要改的话vc里有system()可用,不过相当于重写。
因此,在vc里运行tc的一些程序时会说函数无定义,找不到头文件,或头文件里有语法错误。
#3
pangding2011-04-03 18:30
TC 有好多自己的东西。很多 TC 写出来的程序 vc 都没法直接用。
1