我需要使用中断Int 65
输出一些字符串但它给我的错误我正在使用 Turbo C ++ 4.0 Windows 7 Windows 8 64位版本
#include<stdio.h>
#include<fcntl.h>
#include<io.h>
#include<BIOS.H>
#include<DOS.h>
void interrupt (*oldint65)( );
char st[80] = {"Hello World$"};
void interrupt newint65(void);
void main()
{
oldint65 = getvect(0x65);
setvect(0x65, newint65);
geninterrupt (0x65);
geninterrupt (0x65);
geninterrupt (0x65);
setvect(0x65, oldint65);
}
void interrupt newint65( )
{
_AH = 0x09;
_DX=(unsigned int)st;
geninterrupt (0x21);
}
我附有错误图片,请帮助我,我做错了
答案 0 :(得分:2)
函数定义与声明不匹配/冲突。 检查:
void interrupt (*oldint65)();
void interrupt *newint65(void);
单个名称中断不能有2个声明..
程序变更应如下:
声明:
void interrupt(*newint65)(void);
定义:
void interrupt(*newint65)( )
{
_AH = 0x09;
_DX=(unsigned int)st;
geninterrupt (0x21);
}
答案 1 :(得分:2)
尝试: 声明:
void interrupt_newint65(void);
定义:
void interrupt_newint65( )
{
_AH = 0x09;
_DX=(unsigned int)st;
geninterrupt (0x21);
}