gpt4 book ai didi

c++ - 函数 int86 编译错误 : "Stray 302",

转载 作者:太空宇宙 更新时间:2023-11-04 06:21:28 25 4
gpt4 key购买 nike

我在代码块中编写此程序,但在 int86(0x33,®s,®s); 中出现错误 302。我的程序是

#include<stdio.h>
#include<dos.h>
#include<conio.h>
#include<graphics.h>

void theend();

static int mask[]={/*SCREEN MASK*/
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,
/*CURSOR MASK*/
0x0000,0x0000,0x381c,0x7c3e,0x7c3e,0x7c3e,0x7c3e,
0x3bdc,0x07e0,0x0ff0,0x0ff0,0x0ff0,0x0ff0,0x07e0,
0x03c0,0x0000};


void main()
{int gdriver=DETECT,gmode,buttons;
union REGS regs;
struct SREGS sregs;
initgraph(&gdriver,&gmode,"");
regs.x.ax=0; /*INITIALIZE MOUSE*/
int86(0x33,®s,®s);
setcolor(LIGHTCYAN);
if(regs.x.ax==0)
{outtextxy(0,0,"NO MOUSE AVAILABLE");
getch();
theend();
}
regs.x.ax=9; /*CHANGE CURSOR SHAPE*/
regs.x.bx=5;
regs.x.cx=0;
regs.x.dx=(int)mask;
segread(&sregs);
sregs.es=sregs.ds;
int86x(0x33,®s,®s,&sregs);
regs.x.ax=1; /*SHOW MOUSE POINTER*/
int86(0x33,®s,®s);
do
{regs.x.ax=3;
int86(0x33,®s,®s);
buttons=regs.x.bx & 3;
}while(buttons!=3);
regs.x.ax=2; /*HIDE MOUSE POINTER*/
int86(0x33,®s,®s);
theend();
}

void theend()
{closegraph();}

我找到一些博客,其中写了关于 dos.h 文件的内容。查看 dos.h 文件是否正常工作?新的dos.h 文件和旧的dos.h 文件有区别吗?

最佳答案

我认为您的编辑器有问题。它已将®更改为注册商标符号®,这是C程序中的无效符号。

编译错误“stray\302”意味着您的程序中有无效字符。在您的例子中,字符是 ®。您应该将 int86(0x33,®s,®s) 行更改为 int86(0x33, &regs, &regs);

函数调用int86,第二个参数为输入寄存器,第三个参数为输出寄存器。我认为您正在尝试对两者都使用 regs 。请注意,最好为输入和输出使用两个单独的变量。 Documentation for int86().

关于c++ - 函数 int86 编译错误 : "Stray 302",,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34058372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com