c++ - 如何使用 Int 65H 输出字符串?

标签 c++ c systems-programming

我需要使用中断 Int 65 输出一些字符串,但它给我错误我正在使用 Turbo C++ 4.0 Windows 7 Windows 8 64Bit Version

#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);
}

我附上了错误图片请帮助我哪里做错了

Error image

最佳答案

函数定义与声明不匹配/冲突.. 检查:

  • void interrupt (*oldint65)();
  • 无效中断 *newint65(void);

单个名称中断不能有 2 个声明..

程序的变化应该如下:

声明:

void interrupt(*newint65)(void);

定义:

void interrupt(*newint65)( ) 
{ 
  _AH = 0x09; 
  _DX=(unsigned int)st; 
  geninterrupt (0x21); 
}

关于c++ - 如何使用 Int 65H 输出字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30414912/

相关文章:

c++ - OpenSceneGraph 应用程序中的无效锁定序列错误

c++ - 使用 patchelf 和备用 glibc 版本时找不到 libstdc++.so

c - 是否有可能在c中同时运行主线程及其子线程

c++ - 基本的shared_count变体

c++ - 如何建立一个具有cmake文件的c++/c项目?

c++ - VSS 备份的正确流程 - VSS_E_BAD_STATE 错误

c - 此 C 代码不断给我带来代码块段错误

c - semclt 总是返回 -1

assembly - 文字 VS 立即操作数

c++ - (c++) 将 int 转换为 char 指针(int 是 int 形式的字符)