A. 在单片机c语言编程中的0x代表什么意思啊谢谢大侠指导
■写程序时OX后面的数值表示是16进制的,和数值后面加H表示16进制的方法等效。
例如10H 是16 进制的16, 用OX方法来写就是OX10
即 OX10 = 10H (等于十进制的十六)
B. c语言如何获取鼠标键盘信息
我估计你分数给的在高也没人回答。来个这样的代码太麻烦了。而且网络金币用处也不大。
不过,我可以写几个鼠标函数给你参考一下。
首先了解一下鼠标的中断。
_ax=0x01
表示显示光标
_ax=0x02
停止显示光标
_ax=0x03
读取光标位置与案件
_ax=0x04
设置光标位置
所以啊。根据这四个中断,有以下几个函数
----------------------------------------------------
void
mouseon(void)//鼠标光标显示
{
_ax
=
0x01;
geninterrupt(0x33);
}
----------------------------------------------------
void
mouseoff(void)//鼠标光标隐藏
{
_ax
=
0x02;
geninterrupt(0x33);
}
---------------------------------------------------
void
mousesetxy(int
x,int
y)//设置当前位置
{
_cx
=
x,
_cd
=
y;
_ax
=
0x04;
geninterrupt(0x33);
}
---------------------------------------------------
int
leftpress(void)//鼠标左键按下
{
_ax
=
0x33;
geninterrupt(0x33);
return(_bx&1);
}
-----------------------------------------------------
鼠标右键的应该也会了吧。不过要return(_bx&2);
-----------------------------------------------------
void
mousegetxy(void)//得到当前位置
{
_ax
=
0x33;
geninterrupt(0x33);
mousex
=
_cx;
mousey
=
_dx;
}
---------------------------------------------------------------
最好要复制粘贴,打字打得手疼。
C. C语言0X或0x问题
0X表示的是采用十六进制来表示一个整数,X不能拿出来单独说指的是什么。操作方法如下:
1、首先在电脑中点击打开DevC++或者其他的C语言编程软件,如图所示。
D. C语言下怎么用鼠标啊
/*这个我确实不会,直接找了一篇你看下,估计有所参考*/
#include <dos.h>
#include <bios.h>
#include <malloc.h>
#include <stdlib.h>
#include <stdio.h>
#include "graphics.h"
#define R 15 /*鼠标的形态*/
void initgr(void) /* BGI初始化 */
{
int gd = DETECT, gm = 0; /* 和gd = VGA,gm = VGAHI是同样效果 */
initgraph(&gd, &gm, "");
}
/*获取鼠标位置和按键,key=1是左键,key=2是右键*/
void getmouse(int *x,int *y,int *key)
{
union REGS inregs,outregs;
inregs.x.ax=3; /*获取鼠标位置和状态也可以用3*/
int86(0x33,&inregs,&outregs); /*中断调用*/
*x=outregs.x.cx; /*cx寄存器中存的是横坐标*/
*y=outregs.x.dx; /*dx寄存器中存的是列坐标*/
*key=outregs.x.bx; /*bx寄存器是按键状态*/
}
void visbilemouse()
{
union REGS inregs,outregs;
inregs.x.ax=0x01; /*显示鼠标*/
int86(0x33,&inregs,&outregs);
}
/*按键后,返回当前鼠标的x,y和按键状态,知道按键后才返回*/
void mouse(int *x,int *y,int *z) /*画鼠标是利用将一个空矩形存入内存中,然后再在该空矩形中画鼠标形状*/
{
int a=0,b=0,c=0,a_old=0,b_old=0; /*a,b的值可以随便*/
int *ball; /*定义指向内存的存储图形的指针*/
ball=malloc(imagesize(a,b,a+R,b+R)); /*返回矩形的大小*/
getimage(a,b,a+R,b+R,ball); /*第一次将图形(一个空矩形)存入到内存中,内存中存入的是一个空矩形*/
/*setcolor(GREEN);
setlinestyle(0,0,1);
line(a,b,a+R,b+R/2);
line(a,b,a+R/2,b+R);
line(a+R,b+R/2,a+R/2,b+R);
line(a+R*3/4,b+R*3/4,a+R,b+R); 同样可要可不要,画鼠标*/
while(c==0) /*直到按键后才返回,不按键一直循环*/
{
getmouse(&a,&b,&c); /*a,为横坐标,b,为列坐标,c为按键状态*/
if(a<0) a=0; /*保证鼠标左边不出界*/
if(b<0) b=0; /*保证上面不出界*/
if(a>getmaxx()-R) a=getmaxx()-R; /*保证右边不出界*/
if(b>getmaxy()-R) b=getmaxy()-R; /*保证下边不出界*/
if(a!=a_old || b!=b_old) /*当鼠标移动时*/
{
putimage(a_old,b_old,ball,0); /*在a_old,b_old输出图形,用来擦掉原来的鼠标*/
getimage(a,b,a+R,b+R,ball); /*这条语句是将目前鼠标所在位置的图形存贮到ball里面试着看着有无这条语句的区别*/
/*不需要在获取了*/
setcolor(GREEN);
setlinestyle(0,0,1);
line(a,b,a+R,b+R/2);
line(a,b,a+R/2,b+R);
line(a+R,b+R/2,a+R/2,b+R);
line(a+R*3/4,b+R*3/4,a+R,b+R); /*画鼠标*/
}
a_old=a;b_old=b;
} /*while()结束*/
*x=a;*y=b;*z=c; /*返回按键后鼠标的位置*/
putimage(a,b,ball,0); /*将鼠标擦掉,因为存在ball里面的是一个背景为缺省状态下的一个空矩形*/
free(ball);
}
/*主要思想是通过getimage,putimage,imagesize图形的存贮一个当前的图形来擦拭掉以前的鼠标图形,也可以用清屏部分屏幕来实现*/
void main()
{
int x,y,z;
initgr();
visbilemouse();
do
{
setcolor(WHITE);
rectangle(175,8,220,25);
outtextxy(180,10,"exit");
mouse(&x,&y,&z);
if(z==1)
{
setlinestyle(0,0,1);
setcolor(12);
circle(x,y,1);
}
if(z==2)
{setfillstyle(1,BLACK);
bar(0,0,getmaxx(),getmaxy());
}
}while(x<175 || x>220 || y<8 || y>25);
closegraph();
}
E. C语言怎么实现鼠标操作
VOID keybd_event( BYTE bVk, BYTE bScan, DWORD dwFlags, DWORD dwExtraInfo ); 4个参数都是输入参数。 bVk:键名,例如: VK_NUMPAD7,VK_BACK, VK_TAB,VK_SHIFT,VK_F1,。。。 keybd_event(VK_MENU,0xb8,0 , 0); -- 按下Alt 键 keybd_event(VK_MENU,0xb8,KEYEVENTF_KEYUP,0); -- 放开 Alt 键 (复位,弹上来) === 下面程序模拟按 notepad 编辑器。等于C语言 system("notepad"); 弹出 记事本。
F. 用c语言编写一个可以用鼠标控制的五子棋程序
#include<ctype.h>
#include<stdio.h>
#include<dos.h>
#include<conio.h>
#include<ctype.h>
#include<bios.h>
#define SHURU 1
#define FANGXIANG 2
#define WUXIAO 0
#define TUICHU 3
/****************************************************/
static int ii=0,jj=0,wanjia=1;
/****************************************************/
void hqp(int a[][20],int y);
int anjian(char an);
int panan(int a[][20]);
void pingmu(void);
void guangbiaoyd(char an);
void jh(int a[][20]);
/****************************************************/
void main()
{
int a[20][20]={0},tuichu=0,ying;
char an;
hqp(a,0);
pingmu();
while(1)
{
ying=panan(a);
if(ying!=0)
hqp(a,ying);
an=getch();
switch(anjian(an))
{
case TUICHU:clrscr();
tuichu=1;
break;
case FANGXIANG:guangbiaoyd(an);
break;
case SHURU: switch(ying)
{
case 1:hqp(a,1);tuichu=1;break;
case 2:hqp(a,2);tuichu=1;break;
case 0:jh(a);break;
}
break;
case WUXIAO:break;
}
hqp(a,0);
pingmu();
if(tuichu==1)
break;
}
}
/****************************************************/
void hqp(int a[][20],int y)
{
int i,j;
clrscr();
if(y!=0)
{
textcolor(RED);
printf("WAN JIA %d SHENG LI! ! ! ! ! \n",y);
}
for(i=0;i<20;i++)
{
for(j=0;j<20;j++)
{
switch(a[i][j])
{
case 1: textcolor(YELLOW);
putch('X');
break;
case 2: textcolor(BLUE);
putch('0');
break;
case 0: textcolor(GREEN);
if(j==0)
{
if(i==0)
{
putch(0xda);
break;
}
if(i==19)
{
putch(0xc0);
break;
}
putch(0xc3);
break;
}
if(j==19)
{
if(i==0)
{
putch(0xbf);
break;
}
if(i==19)
{
putch(0xd9);
break;
}
putch(0xb4);
break;
}
if(i==0&&j!=0&&j!=19)
{
putch(0xc2);
break;
}
if(i==19&&j!=0&&j!=19)
{
putch(0xc1);
break;
}
putch(0xc5);
break;
}
}
printf("\n");
}
}
/*****************************************************************/
int anjian(char an)
{
if(an==32||an==13)
return(SHURU);
else
if(an=='a'||an=='w'||an=='s'||an=='d'||
an=='j'||an=='i'||an=='k'||an=='l')
return(FANGXIANG);
else
if(an==27)
return(TUICHU);
else
return(WUXIAO);
}
/******************************************************************/
int panan(int a[][20])
{
int i,j;
for(i=0;i<20;i++)
{
for(j=0;j<15;j++)
{
if(a[i][j]==1&&a[i][j+1]==1&&a[i][j+2]==1&&a[i][j+3]==1&&a[i][j+4]==1)
return(1);
else
if(a[i][j]==2&&a[i][j+1]==2&&a[i][j+2]==2&&a[i][j+3]==2&&a[i][j+4]==2)
return(2);
}
}
for(i=0;i<15;i++)
{
for(j=0;j<20;j++)
{
if(a[i][j]==1&&a[i+1][j]==1&&a[i+2][j]==1&&a[i+3][j]==1&&a[i+4][j]==1)
return(1);
else
if(a[i][j]==2&&a[i+1][j]==2&&a[i+2][j]==2&&a[i+3][j]==2&&a[i+4][j]==2)
return(2);
}
}
for(i=0;i<15;i++)
{
for(j=0;j<15;j++)
{
if(a[i][j]==1&&a[i+1][j+1]==1&&a[i+2][j+2]==1&&a[i+3][j+3]==1&&a[i+4][j+4]==1)
return(1);
else
if(a[i][j]==2&&a[i+1][j+1]==2&&a[i+2][j+2]==2&&a[i+3][j+3]==2&&a[i+4][j+4]==2)
return(2);
}
}
for(i=4;i<20;i++)
{
for(j=4;j<20;j++)
{
if(a[i][j]==1&&a[i-1][j-1]==1&&a[i-2][j-2]==1&&a[i-3][j-3]==1&&a[i-4][j-4]==1)
return(1);
else
if(a[i][j]==2&&a[i-1][j-1]==2&&a[i-2][j-2]==2&&a[i-3][j-3]==2&&a[i-4][j-4]==2)
return(2);
}
}
return(0);
}
/**************************************************************************/
void pingmu(void)
{
int i,j;
char *Msg[]=
{
"Wan Jia1 an jian:",
" shang: w",
" xia: s",
" zuo: a",
" you: d",
" fang zi: space",
"",
"Wan Jia2 an jian:",
" shang: i",
" xia: k",
" zuo: j",
" you: l",
" fang zi: ENTER",
"tui chu:",
" ESC\n",
NULL,
};
i=0;
textcolor(RED);
while(Msg[i]!=NULL)
{
gotoxy(25,3+i);
cputs(Msg[i]);
i++;
}
gotoxy(25,20);
printf("\nqing wan jia %d chu ru:",wanjia);
gotoxy(jj+1,ii+1);
}
/**********************************************************************/
void guangbiaoyd(char an)
{
if(wanjia==1)
{
switch(an)
{
case 'a': jj--;break;
case 'd': jj++;break;
case 'w': ii--;break;
case 's': ii++;break;
}
}
else
{
switch(an)
{
case 'j': jj--;break;
case 'l': jj++;break;
case 'i': ii--;break;
case 'k': ii++;break;
}
}
if(ii<0)
ii++;
if(ii>19)
ii--;
if(jj<0)
jj++;
if(jj>19)
jj--;
gotoxy(ii+1,jj+1);
}
/***********************************************************************/
void jh(int a[][20])
{
int k=0;
if(wanjia==1&&a[ii][jj]==0&&k==0)
{
a[ii][jj]=1;
wanjia=2;
k=1;
}
else
{
if(a[ii][jj]==0&&k==0)
{
a[ii][jj]=2;
wanjia=1;
}
}
}
/***********************************************************************/
G. C语言中对变量赋值0x是什么意思
C语言中对变量赋值0x是以十六进制数作为变量的值进行运算的。一般用来表示内存地址的。
举例说明:
定义x:int x = 0x23 ;
这句话的意思跟定义成int x=35一样的。编译器在接收到0x23时就把它当做十六进制数来处理。
H. c语言编程中出现0x004012cc指令引用的0x00000031内存。该内存不能为read是怎么回事
您好!出现:0x???????? 指令引用的0x????????内存。该内存不能为"read"或"written"。答案【shijan8原创】★严禁复制★
【1】对电脑没有影响或【偶尔】出现,不用管它,【重启电脑】后可能会自动消失。
【2】盗版系统或Ghost版本系统,系统文件错误或丢失,也会出现该问题,及时安装官方发行的补丁,{检查电脑年、月、日是否正确}。建议:安装【正版】系统。
【3】检查驱动是否出现问题,重新安装驱动或及时更新驱动。
【4】病毒引起的:升级杀毒软件或下载专杀工具,清理恶意插件,对电脑全盘杀毒。
【5】硬件引起的:
(1)可能是内存条出现的小问题,关机断电,把内存条拆下清理干净重新安装。必要时更换内存条。(硬件上一般不会出现该问题)
【6】软件引起的:
(1)安装的软件与系统或其它软件发生冲突,盗版或带病毒的软件,请慎重下载软件,最好使用正版。【这里主要说的是检查开机启动项,把没必要启动的启动项禁止开机启动】
(2)如果你的电脑中安装了两款或两款以上的同类软件,比如:两款杀毒软件、两款优化系统软件等,请卸载一款,以免发生冲突,以保持电脑稳定性。
(3)有些系统补丁下载安装了错误补丁,可能与您当前的系统或其它软件发生冲突,也会出现该问题。卸载该补丁,找到适合您电脑补丁,重新下载重新安装。
可以试试下面的方法:看看能不能解决。
◆开始→运行→输入cmd→回车,在命令提示符下输入下面命令
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1回车。
完成后,在输入下面的
for %i in (%windir%\system32\*.ocx) do regsvr32.exe /s %i 回车。
如果怕输入错误,可以复制这两条指令,然后在命令提示符后击鼠标右键,打“粘贴”,回车,耐心等待,直到屏幕滚动停止为止。(重启电脑)。
●在检查运行regedit进入注册表, 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks 下,应该只有一个正常的键值{AEB6717E-7E19-11d0-97EE-00C04FD91972}, 将其他的删除。【如果还有一个(默认)值不用管它,一般它为空。】必要时【还原】或重新安装系统。
I. C语言里的0x0和0x1是什么意思啊
C语言里的0x0和0x1分别表示十六进制的数的0和1。
C语言、C++、Shell、Python、Java语言及其他相近的语言使用字首“0x”,例如“0x5A3”。开头的“0”令解析器更易辨认数,而“x”则代表十六进制(就如“O”代表八进制)。在“0x”中的“x”可以大写或小写。对于字符量C语言中则以x+两位十六进制数的方式表示,如xFF。
因此,0x0中“0x”表示的是十六进制数,0是十六进制数值0,0x,1中“0x”表示的是十六进制数,1是十六进制数值1。
(9)c语言鼠标0x扩展阅读:
C语言中的相关数值表示法:
1、在C语言里,整数有三种表示形式:十进制,八进制,十六进制。其中以数字0开头,由0~7组成的数是八进制。以0X或0x开头,由0~9,A~F或a~f 组成是十六进制。除表示正负的符号外,以1~9开头,由0~9组成是十进制。
2、十进制:除表示正负的符号外,以1~9开头,由0~9组成。如,128,+234,-278。
3、八进制:以0开头,由0~7组成的数。如,0126,050000.
4、十六进制:以0X或0x开头,由0~9,A~F或a~f 组成。如,0x12A,0x5a000。
J. 关于C语言鼠标驱动程序(高手请仔细看)
设置鼠标的光标形状
设置鼠标光标需要三个方面信息:
鼠标的外边界:8*8点阵,16个整数
鼠标的内部形状:8*8点阵,16个整数
以及鼠标的热点的相对坐标:int x,y
其中外边界和内边界连续存放,为长度为32的整型数组 int marks[32] SetCurs(unsigned masks[32],x,y)
{ union REGS regs; struct SREGS sregs;
regs.x.ax=9;
regs.x.bx=x; regs.x.cx=y;/* hot spot*/
regs.x.dx=(unsigned)masks;
segread(&sregs); int86(0x33,(r)gs,(r)gs);
}
一些不同形状的光标数据:
//mouse
{0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, //Cursor mask
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1000, 0x13c0,
0x3ff0, 0x7ff8, 0xfff8, 0xfff8, 0x0824, 0x0822, 0x1ce2, 0x0000},
//empty hand
{0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0x0c00, 0x1200, 0x1200, 0x1200, 0x13fe, 0x1249, 0x1249, 0x1249,
0x7249, 0x9001, 0x9001, 0x9001, 0x8001, 0x8001, 0x4002, 0x3ffc},
//full arrow
{0x3fff, 0x1fff, 0x0fff, 0x07ff, 0x03ff, 0x01ff, 0x00ff, 0x007f,
0x003f, 0x00ff, 0x01ff, 0x10ff, 0x30ff, 0xf87f, 0xf87f, 0xfc3f,
0x0000, 0x4000, 0x6000, 0x7000, 0x7800, 0x7c00, 0x7e00, 0x7f00,
0x7f80, 0x7e00, 0x7c00, 0x4600, 0x0600, 0x0300, 0x0300, 0x0180},
//full hand
{0xf3ff, 0xe1ff, 0xe1ff, 0xe1ff, 0xe001, 0xe000, 0xe000, 0xe000,
0x8000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8001, 0xc003,
0x0c00, 0x1200, 0x1200, 0x1200, 0x13fe, 0x1249, 0x1249, 0x1249,
0x7249, 0x9001, 0x9001, 0x9001, 0x8001, 0x8001, 0x4002, 0x3ffc}
};
Point hotspot[]={{0,11},{4,0},{0,0},{4,0}};/*热点*/