- 论坛徽章:
- 0
|
你好!
如题,想学一下C调用操作系统接口,照书上写了如下代码,在tc里可以执行,在 dev-c++ 4.0里就有问题,请看:
#include <dos.h>
#define MODECODE 1
#define NUM 5
struct WORDREGS{
unsigned int ax;
unsigned int bx;
unsigned int cx;
unsigned int dx;
unsigned int si;
unsigned int di;
unsigned int cflag;
};
struct BYTEREGS{
unsigned char al,ah;
unsigned char bl,bh;
unsigned char cl,ch;
unsigned char dl,dh;
};
union REGS{
struct WORDREGS x;
struct BYTEREGS h;
}; // 在 tc 里不用定义这个。但在dev c++ 里不定义,编译时就提示类型未知。
int main()
{
int i=0;
void initialization(void);
while (i++<NUM){
initialization();
putchar(getchar());
}
return 0;
}
void initialization(void)
{
void mode(unsigned char mode_code);
void cls(void);
void goto_xy(int x,int y);
mode(MODECODE);
cls();
goto_xy(0,0);
return;
}
void mode(unsigned char mode_code)
{
union REGS r;
r.h.al=mode_code;
r.h.ah=0;
int86(0x10,&r,&r);
r.h.ah=1;
r.h.ch=2;
r.h.cl=2;
int86(0x10,&r,&r);
return;
}
void cls(void)
{
union REGS r;
r.h.ah=6;
r.h.al=0;
r.h.ch=0;
r.h.cl=0;
r.h.dh=24;
r.h.dl=79;
r.h.bh=7;
int86(0x10,&r,&r);
return;
}
void goto_xy(int x,int y)
{
union REGS r;
r.h.ah=2;
r.h.dl=y;
r.h.dh=x;
r.h.bh=0;
int86(0x10,&r,&r);
return;
}
在 dev c++里编译报错:C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ccKYcaaa.o(.text+0xe5):test.c: undefined reference to `int86'
请高手指点一下。
或者请问,在 dev c++ 下,如何访问 rom-bios 系统资源?何种途径查阅相关资料?本人英语不太好,速度太慢![](static/image/smiley/default/icon_smile.gif) |
|