您现在的位置是: 首页 > 安装教程 安装教程

bios源代码_bios源代码剖析

ysladmin 2024-07-03 人已围观

简介bios源代码_bios源代码剖析       对于bios源代码的话题,我可以从不同的角度进行分析和讨论,并提供相关的资讯和建议。1.linux安装源码包linux安装源码2.一分钟之内让cpu烧毁的代码有木有3.急

bios源代码_bios源代码剖析

       对于bios源代码的话题,我可以从不同的角度进行分析和讨论,并提供相关的资讯和建议。

1.linux安装源码包linux安装源码

2.一分钟之内让cpu烧毁的代码有木有

3.急求C语言编译的小游戏(如扫雷),附带源代码和注释。

4.谁有用c++写的贪吃蛇源代码分享一个给我吧, 好人一生平安!

5.VC++如何获取机器码?硬盘序列号、CPU编号、BIOS编号等~

6.查找电脑配置的代码是什么

bios源代码_bios源代码剖析

linux安装源码包linux安装源码

       linux源码安装是什么意思?

       编译安装可以自己加上特定参数改变安装路径,支持某些模块等rpm都是已经设置好,只需要装

       如何给linux安装新内核?

       一、获取内核源码

       二、解压内核源码

       首先以root帐号登录,然后进入/usr/src子目录。如果用户在安装Linux时,安装了内核的源代码,则会发现一个linux-x.y.z的子目录。该目录下存放着内核x.y.z的源代码。此外,还会发现一个指向该目录的链接linux。删除该连接,然后将新内核的源文件拷贝到/usr/src目录中,并解压:

       #tarzxvfLinux-2.3.14.tar.gz

       文件释放成功后,在/usr/src目录下会生成一个linux子目录。其中包含了内核2.3.14的全部源代码。将/usr/include/asm、/usr/inlude/linux、/usr/include/scsi链接到/usr/src/linux/include目录下的对应目录中。

       #cd/usr/include

       #rm-Rfasmlinux

       #ln-s/usr/src/linux/include/asm-i386asm

       #ln-s/usr/src/linux/include/linuxlinux

       #ln-s/usr/src/linux/include/scsiscsi

       删除源代码目录中残留的.o文件和其它从属文件。

       #cd/usr/src/linux

       #makemrproper

       三.增量补丁

       有时不需要完全重新安装,只需打增量补丁,类似升级,在内核源码树根目录运行:

       patch-p1../patch-x.y.z

       四.内核源码树目录:

       arch:包含和硬件体系结构相关的代码,每种平台占一个相应的目录。和32位PC相关的代码存放在i386目录下,其中比较重要的包括kernel(内核核心部分)、mm(内存管理)、math-emu(浮点单元仿真)、lib(硬件相关工具函数)、boot(引导程序)、pci(PCI总线)和power(CPU相关状态)。

       block:部分块设备驱动程序。

       crypto:常用加密和散列算法(如AES、SHA等),还有一些压缩和CRC校验算法。

       Documentation:关于内核各部分的通用解释和注释。

       drivers:设备驱动程序,每个不同的驱动占用一个子目录。

       fs:各种支持的文件系统,如ext、fat、ntfs等。

       include:头文件。其中,和系统相关的头文件被放置在linux子目录下。

       init:内核初始化代码(注意不是系统引导代码)。

       ipc:进程间通信的代码。

       kernel:内核的最核心部分,包括进程调度、定时器等,和平台相关的一部分代码放在arch/*/kernel目录下。

       lib:库文件代码。

       mm:内存管理代码,和平台相关的一部分代码放在arch/*/mm目录下。

       net:网络相关代码,实现了各种常见的网络协议。

       scripts:用于配置内核文件的脚本文件。

       security:主要是一个SELinux的模块。

       sound:常用音频设备的驱动程序等。

       usr:实现了一个cpio。

       在i386体系下,系统引导将从arch/i386/kernel/head.s开始执行,并进而转移到init/main.c中的main()函数初始化内核。

       五.配置内核

       #cd/usr/src/linux

       内核配置方法有三种:

       (1)命令行:makeconfig

       (2)菜单模式的配置界面:makemenuconfig

       (3)Xwindow:makexconfig

       Linux的内核配置程序提供了一系列配置选项。对于每一个配置选项,用户可以"y"、"m"或"n"。其中"y"表示将相应特性的支持或设备驱动程序编译进内核;"m"表示将相应特性的支持或设备驱动程序编译成可加载模块,在需要时,可由系统或用户自行加入到内核中去;"n"表示内核不提供相应特性或驱动程序的支持。由于内核的配置选项非常多,本文只介绍一些比较重要的选项。

       1、Codematurityleveloptions(代码成熟度选项)

       Promptfordevelopmentand/orincompletecode/drivers(CONFIG_EXPERIMENTAL)如果用户想要使用还处于测试阶段的代码或驱动,可以选择“y”。如果想编译出一个稳定的内核,则要选择“n”。

       2、Processortypeandfeatures(处理器类型和特色)

       (1)、Processorfamily(386,486/Cx486,586/K5/5x86/6x86,Pentium/K6/TSC,PPro/6x86MX)选择处理器类型,缺省为Ppro/6x86MX。

       (2)、MaximumPhysicalMemory(1GB,2GB)内核支持的最大内存数,缺省为1G。

       (3)、Mathemulation(CONFIG_MATH_EMULATION)协处理器仿真,缺省为不仿真。

       (4)、MTRR(MemoryTypeRangeRegister)support(CONFIG_MTRR)

       选择该选项,系统将生成/proc/mtrr文件对MTRR进行管理,供Xserver使用。

       (5)、Symmetricmulti-processingsupport(CONFIG_SMP)选择“y”,内核将支持对称多处理器。

       3、Loadablemodulesupport(可加载模块支持)

       (1)、Enableloadablemodulesupport(CONFIG_MODULES)选择“y”,内核将支持加载模块。

       (2)、Kernelmoduleloader(CONFIG_KMOD)选择“y”,内核将自动加载那些可加载模块,否则需要用户手工加载。

       4、Generalsetup(一般设置)

       (1)、Networkingsupport(CONFIG_NET)该选项设置是否在内核中提供网络支持。

       (2)、PCIsupport(CONFIG_PCI)该选项设置是否在内核中提供PCI支持。

       (3)、PCIaccessmode(BIOS,Direct,Any)该选项设置Linux探测PCI设备的方式。选择“BIOS”,Linux将使用BIOS;选择“Direct”,Linux将不通过BIOS;选择“Any”,Linux将直接探测PCI设备,如果失败,再使用BIOS。

       (4)Parallelportsupport(CONFIG_PARPORT)选择“y”,内核将支持平行口。

       5、PlugandPlayconfiguration(即插即用设备支持)

       (1)、PlugandPlaysupport(CONFIG_PNP)选择“y”,内核将自动配置即插即用设备。

       (2)、ISAPlugandPlaysupport(CONFIG_ISAPNP)选择“y”,内核将自动配置基于ISA总线的即插即用设备。

       6、Blockdevices(块设备)

       (1)、NormalPCfloppydisksupport(CONFIG_BLK_DEV_FD)选择“y”,内核将提供对软盘的支持。

       (2)、EnhancedIDE/MFM/RLLdisk/cdrom/tape/floppysupport(CONFIG_BLK_DEV_IDE)选择“y”,内核将提供对增强IDE硬盘、CDROM和磁带机的支持。

       7、Networkingoptions(网络选项)

       (1)、Packetsocket(CONFIG_PACKET)选择“y”,一些应用程序将使用Packet协议直接同网络设备通讯,而不通过内核中的其它中介协议。

       (2)、Networkfirewalls(CONFIG_FIREWALL)选择“y”,内核将支持防火墙。

       (3)、TCP/IPnetworking(CONFIG_INET)选择“y”,内核将支持TCP/IP协议。

       (4)TheIPXprotocol(CONFIG_IPX)选择“y”,内核将支持IPX协议。

       (5)、AppletalkDDP(CONFIG_ATALK)选择“y”,内核将支持AppletalkDDP协议。

       8、SCSIsupport(SCSI支持)

       如果用户要使用SCSI设备,可配置相应选项。

       9、Networkdevicesupport(网络设备支持)

       Networkdevicesupport(CONFIG_NETDEVICES)选择“y”,内核将提供对网络驱动程序的支持。

       10、Ethernet(10or100Mbit)(10M或100M以太网)

       在该项设置中,系统提供了许多网卡驱动程序,用户只要选择自己的网卡驱动就可以了。此外,用户还可以根据需要,在内核中加入对FDDI、PPP、SLIP和无线LAN(WirelessLAN)的支持。

       11、Characterdevices(字符设备)

       (1)、Virtualterminal(CONFIG_VT)选择“y”,内核将支持虚拟终端。

       (2)、Supportforconsoleonvirtualterminal(CONFIG_VT_CONSOLE)

       选择“y”,内核可将一个虚拟终端用作系统控制台。

       (3)、Standard/generic(dumb)serialsupport(CONFIG_SERIAL)

       选择“y”,内核将支持串行口。

       (4)、Supportforconsoleonserialport(CONFIG_SERIAL_CONSOLE)

       选择“y”,内核可将一个串行口用作系统控制台。

       12、Mice(鼠标)

       PS/2mouse(aka"auxiliarydevice")support(CONFIG_PSMOUSE)如果用户使用的是PS/2鼠标,则该选项应该选择“y”。

       13、Filesystems(文件系统)

       (1)、Quotasupport(CONFIG_QUOTA)选择“y”,内核将支持磁盘限额。

       (2)、Kernelautomountersupport(CONFIG_AUTOFS_FS)选择“y”,内核将提供对automounter的支持,使系统在启动时自动mount远程文件系统。

       (3)、DOSFATfssupport(CONFIG_FAT_FS)选择“y”,内核将支持DOSFAT文件系统。

       (4)、ISO9660CDROMfilesystemsupport(CONFIG_ISO9660_FS)

       选择“y”,内核将支持ISO9660CDROM文件系统。

       (5)、NTFSfilesystemsupport(readonly)(CONFIG_NTFS_FS)

       选择“y”,用户就可以以只读方式访问NTFS文件系统。

       (6)、/procfilesystemsupport(CONFIG_PROC_FS)/proc是存放Linux系统运行状态的虚拟文件系统,该项必须选择“y”。

       (7)、Secondextendedfssupport(CONFIG_EXT2_FS)EXT2是Linux的标准文件系统,该项也必须选择“y”。

       14、NetworkFileSystems(网络文件系统)

       (1)、NFSfilesystemsupport(CONFIG_NFS_FS)选择“y”,内核将支持NFS文件系统。

       (2)、SMBfilesystemsupport(tomountWfWsharesetc.)(CONFIG_SMB_FS)

       选择“y”,内核将支持SMB文件系统。

       (3)、NCPfilesystemsupport(tomountNetWarevolumes)(CONFIG_NCP_FS)

       选择“y”,内核将支持NCP文件系统。

       15、PartitionTypes(分区类型)

       该选项支持一些不太常用的分区类型,用户如果需要,在相应的选项上选择“y”即可。

       16、Consoledrivers(控制台驱动)

       VGAtextconsole(CONFIG_VGA_CONSOLE)选择“y”,用户就可以在标准的VGA显示方式下使用Linux了。

       17、Sound(声音)

       Soundcardsupport(CONFIG_SOUND)选择“y”,内核就可提供对声卡的支持。

       18、Kernelhacking(内核监视)

       MagicSysRqkey(CONFIG_MAGIC_SYSRQ)选择“y”,用户就可以对系统进行部分控制。一般情况下选择“n”。

       六、编译内核

       (一)、建立编译时所需的从属文件

       #cd/usr/src/linux

       #makedep

       (二)、清除内核编译的目标文件

       #makeclean

       (三)、编译内核

       #makezImage

       内核编译成功后,会在/usr/src/linux/arch/i386/boot目录中生成一个新内核的映像文件zImage。如果编译的内核很大的话,系统会提示你使用makebzImage命令来编译。这时,编译程序就会生成一个名叫bzImage的内核映像文件。

       (四)、编译可加载模块

       如果用户在配置内核时设置了可加载模块,则需要对这些模块进行编译,以便将来使用insmod命令进行加载。

       #makemodules

       #makemodelus_install

       编译成功后,系统会在/lib/modules目录下生成一个2.3.14子目录,里面存放着新内核的所有可加载模块。

       七、启动新内核

       (一)、将新内核和System.map文件拷贝到/boot目录下

       #cp/usr/src/linux/arch/i386/boot/bzImage/boot/vmlinuz-2.3.14

       #cp/usr/src/linux/System.map/boot/System.map-2.3.14

       #cd/boot

       #rm-fSystem.map

       #ln-sSystem.map-2.3.14System.map

       (二)、配置/etc/lilo.conf文件。在该文件中加入下面几行:

       default=linux-2.3.14

       image=/boot/vmlinuz-2.3.14

       label=linux-2.3.14

       root=/dev/hda1

       read-only

       (三)、使新配置生效

       #/sbin/lilo

       (四)、重新启动系统

       #/sbin/reboot

       新内核如果不能正常启动,用户可以在LILO:提示符下启动旧内核。然后查出故障原因,重新编译新内核即可。

一分钟之内让cpu烧毁的代码有木有

       tl.h>

       #include<stdlib.h>

       #include<conio.h>

       #include <graphics.h>

       #define HH '0'

       #define N 6

       int Q=0;

       char key;

       int fine=1;

       int A=0,B=0;

       char s[N][N],m[N][N];

       void *ball;

       int maxx;

       unsigned int size;

       loading()

       { int z=1;

       while(z)

        { if(z>77)break;

        printf("<");

        delay(5000);

        z++;

        }

        delay(2000);

        cleardevice();

       }

       unsigned char Get_Ascii_Key(void)

       {

        if(bioskey(1))

        return(bioskey(0));

        else return(0);

       }

       int Test_Ascii_Key(int ascii)

       {

       if(Get_Ascii_Key()==ascii)

       return(1);

       else

       return(0);

       }

       void tu(){

       maxx=getmaxx();

       size=imagesize(210,390,450,420);

       ball=malloc(size);

       setfillstyle(1,10);

       bar(160,170,473,253);

       setfillstyle(1,9);

       bar(163,173,470,250);

       setcolor(13);

       outtextxy(200,200,"Welcome to BLACK & WHITE chess");

       setcolor(14);

       outtextxy(250,220,"Developer :Wu siyuan ");

       outtextxy(290,240,"2002.8");

       outtextxy(210,390,"Press any key to contunue...");

       getimage(210,390,450,420,ball);

       while(!kbhit()){

        putimage(210,390,ball,XOR_PUT);

        delay(30000);

       }

       cleardevice();

       }

       void sou(void){

       }

       void print()

       { int i=0,j=30;

        setcolor(11);

        outtextxy(35,20," 0 1 2 3 4 5");

        outtextxy(14,50,"0");

        outtextxy(14,100,"1");

        outtextxy(14,150,"2");

        outtextxy(14,200,"3");

        outtextxy(14,250,"4");

        outtextxy(14,300,"5");

        setbkcolor(0);

        setlinestyle(SOLID_LINE,0,2);

        for(i=0;i<7;i++)

        { setcolor(GREEN);

        line (j,30,j,330);

        j+=50;

        }

        j=30;

        for(i=0;i<7;i++)

        { setcolor(GREEN);

        line(30,j,330,j);

        j+=50;

        }

       for(i=0;i<6;i++)

        for(j=0;j<6;j++)

        { if(s[i][j]=='o')

        {

        setcolor(WHITE);

        circle(55+j*50,55+i*50,15);

        }

        else if(s[i][j]=='x')

        { setcolor(RED);

        circle(55+j*50,55+i*50,15); }

        }

       }

       int cal(char z)

       { int *p=0;

        int num=0,i,j;

        for(i=0;i<N;i++)

        for(j=0;j<N;j++)

        if(s[i][j]==z)num++;

        p=&num;

        return(*p);

       }

       void save()

       {int i,j;

        for(i=0;i<N;i++)

        for(j=0;j<N;j++)

        m[i][j]=s[i][j];

       }

       void load()

       { int i,j;

        for(i=0;i<N;i++)

        for(j=0;j<N;j++)

        s[i][j]=m[i][j];

       }

       snew(int x,int y,char z1,char z2)

       {int i,j,a;int can[]={0,0,0,0,0,0,0,0,0},k[N*N];

        if(s[x][y-1]==z1&&(y-1)>=0)

        {

        i=0;

        while(i<y)

        {

        if(s[x][i]==z2){ can[1]=1;break; }

        i++;

        }

        }

        if(s[x][y+1]==z1)

        {

        i=y+2;

        while(i<N)

        {

        if(s[x][i]==z2){ can[2]=1;break;}

        i++;

        }

        }

        if(s[x-1][y]==z1&&(x-1)>=0)

        {

        i=0;

        while(i<x)

        {

        if(s[i][y]==z2){can[3]=1;break;}

        i++;

        }

        }

        if(s[x+1][y]==z1)

        {i=x+2;

        while(i<N)

        {

        if(s[i][y]==z2){can[4]=1;break;}

        i++;

        }

        }

        if(s[x-1][y+1]==z1&&(x-1)>=0)

        {i=2;

        while(y+i<N&&(x-i>=0))

        {if(s[x-i][y+i]==z2){can[5]=1;break;}

        i++;

        }

        }

        if(s[x+1][y-1]==z1&&(y-1)>=0)

        {i=2;

        while(i<N&&(y-i>=0))

        {if(s[x+i][y-i]==z2)

        {can[6]=1;break;}

        i++;

        }

        }

        if(s[x-1][y-1]==z1&&(x-1)*(y-1)>=0)

        {i=2;

        while(x-i>=0&&y-i>=0)

        {if(s[x-i][y-i]==z2)

        {can[7]=1;

        break;}

        i++;

        }

        }

        if(s[x+1][y+1]==z1)

        {i=2;

        while(i+x<N)

        {if(s[x+i][y+i]==z2)

        {can[8]=1;

        break;}

        i++;

        }

        }

        for(i=1,j=0;i<=8;i++)

        if(can[i]==0)j++;

        if(j==8&&Q==1)

        {printf("error!");

        exit(1); }

        else if(j!=8)s[x][y]=z2;

        if(can[1]==1)

        { i=1;

        while(s[x][y-i]==z1)

        {s[x][y-i]=z2;

        i++;

        }

        can[1]=0;

        }

        if(can[2]==1)

        {i=1;

        while(s[x][y+i]==z1)

        {s[x][y+i]=z2;

        i++;

        }

        can[2]=0;

        }

        if(can[3]==1)

        {i=1;

        while(s[x-i][y]==z1)

        { s[x-i][y]=z2;

        i++;

        }

        can[3]=0;

        }

        if(can[4]==1)

        {i=1;

        while(s[x+i][y]==z1)

        {s[x+i][y]=z2;

        i++;

        }

        can[4]=0;

        }

        if(can[5]==1)

        {i=1;

        while(s[x-i][y+i]==z1)

        {s[x-i][y+i]=z2;

        i++;

        }

        can[5]=0;

        }

        if(can[6]==1)

        {i=1;

        while(s[x+i][y-i]==z1)

        {s[x+i][y-i]=z2;

        i++;

        }

        can[6]=0;

        }

        if(can[7]==1)

        {i=1;

        while(s[x-i][y-i]==z1)

        {s[x-i][y-i]=z2;

        i++;

        }

        can[7]=0;

        }

        if(can[8]==1)

        {i=1;

        while(s[x+i][y+i]==z1)

        {s[x+i][y+i]=z2;

        i++;

        }

        can[8]=0;

        }

       } /* snew */

       void one()

       { int a,b;char g='o';

        load();

        setcolor(15);

        printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");

        printf("\n To exit the Game press the 'q' key.\n");

        print();

       printf("Please input x (0 to 5):");

       while(1){

        a=Get_Ascii_Key();

        if(a==113||a==81){

        printf("\nQuit?(y or n)");

        while(1)

        {

        if(Test_Ascii_Key(89)||Test_Ascii_Key(121))

        exit(0);

        else if(Test_Ascii_Key(110)||Test_Ascii_Key(78))

        {printf("\n\tWelcome to return the Game !\n");break; }

        }}

       if(a>=48&&a<=53){printf("\tGood! x has get!\n");

        break;}

        }

        a=a-48;

        printf("Please input y (0 to 5):");

       while(1){

        b=Get_Ascii_Key();

        if(b==113||b==81)

        {

        printf("\nQuit?(y or Y)");

        while(1)

        {

        if(Test_Ascii_Key(89)||Test_Ascii_Key(121))

        exit(0);

        else if(Test_Ascii_Key(110)||Test_Ascii_Key(78))

        break;

        }}

        if(b>=48&&a<=53){printf("\tGood! y has get!");break;}

        }

        b=b-48;

       Q=1;

        snew(a,b,'x','o');

        Q=0;

        save();

       A=cal(g);

        B=cal('x');

       /* printf("\t\t\t\t\t\t\rA=%d,B=%d",A,B);*/

       }/* one */

       void search()

       {

        int i,j,r=0;

        for(i=0;i<N;i++)

        for(j=0;j<N;j++)

        if(s[i][j]==HH)

        r++;

        if(r==0)fine=0;

       }

       void two()

       { char h='x';int row[N*N],col[N*N];

        int a=1,ii,j,t,t1,k[N*N];

        load();

        for(ii=0;ii<N;ii++)

        for(j=0;j<N;j++)

        if(s[ii][j]==HH)

        {

        row[a]=ii;

        col[a]=j;

        a++;

        }

        /* space right */

        for(ii=1;ii<a;ii++)

        {

        load(); /*two*/

        snew(row[ii],col[ii],'o','x');

        k[ii]=cal(h);

        }

        t=k[1];

        ii--;

        t1=ii;

        while(ii)

        {

        if(t<=k[ii])

        {t=k[ii];t1=ii;}

        ii--;

        }

        a=t1;

        A=cal('o');

        B=t;

        load();

       snew(row[a],col[a],'o','x');

        save();

        cleardevice();

        printf("\n\n\t\t\t\t\t Computer located :%d,%d",row[a],col[a]);

       }

       main()

       { int i,j;

        int gd=DETECT,gm;

        clrscr();

        initgraph(&gd,&gm,"d:\\tc\\bgi");

       setbkcolor(BLACK);

        tu();

        sou();

        setbkcolor(0);

        for(i=0;i<N;i++)

        for(j=0;j<N;j++)

        s[i][j]='0';

        s[2][2]=s[3][3]='x';

        s[2][3]=s[3][2]='o';

        save();

        loading();

        cleardevice();

       while(fine)

        {

        print();

        one();

        two();

        search();

        if(key==113||key==81)

        {

        printf("\nQuit?(y or Y)");

        while(!Test_Ascii_Key(89)&&!Test_Ascii_Key(121));

        break;

        }

        }

        if(A>B)outtextxy(400,200, " You win!");

        else if(A<B)outtextxy(400,200," I win!");

        else outtextxy(400,200," It's a draw!");

        printf("\n You:%d I:%d",A,B);

        getch();

       }

急求C语言编译的小游戏(如扫雷),附带源代码和注释。

       您好,我来自英特尔中国研究中心研发部,有幸回答您的问题。

        去年,处理器内置的防病毒硬件截获了一个代码,他可以使处理器不断循环解析,导致CPU资源大量占用,但是这个源代码是以JAVA应用程序的二进制64位源代码。

       1111000100101011110001001010111100010010101111000010010101110001,目前所有处理器都免疫病毒以及恶意代码。

        英特尔与你共创未来。

谁有用c++写的贪吃蛇源代码分享一个给我吧, 好人一生平安!

       扫雷游戏(c语言版)

       已经编译运行确认了:

       #include <graphics.h>

       #include <stdlib.h>

       #include <dos.h>

       #define LEFTPRESS 0xff01

       #define LEFTCLICK 0xff10

       #define LEFTDRAG 0xff19

       #define MOUSEMOVE 0xff08

       struct

       {

        int num;/*格子当前处于什么状态,1有雷,0已经显示过数字或者空白格子*/

        int roundnum;/*统计格子周围有多少雷*/

        int flag;/*右键按下显示红旗的标志,0没有红旗标志,1有红旗标志*/

       }Mine[10][10];

       int gameAGAIN=0;/*是否重来的变量*/

       int gamePLAY=0;/*是否是第一次玩游戏的标志*/

       int mineNUM;/*统计处理过的格子数*/

       char randmineNUM[3];/*显示数字的字符串*/

       int Keystate;

       int MouseExist;

       int MouseButton;

       int MouseX;

       int MouseY;

       void Init(void);/*图形驱动*/

       void MouseOn(void);/*鼠标光标显示*/

       void MouseOff(void);/*鼠标光标隐藏*/

       void MouseSetXY(int,int);/*设置当前位置*/

       int LeftPress(void);/*左键按下*/

       int RightPress(void);/*鼠标右键按下*/

       void MouseGetXY(void);/*得到当前位置*/

       void Control(void);/*游戏开始,重新,关闭*/

       void GameBegain(void);/*游戏开始画面*/

       void DrawSmile(void);/*画笑脸*/

       void DrawRedflag(int,int);/*显示红旗*/

       void DrawEmpty(int,int,int,int);/*两种空格子的显示*/

       void GameOver(void);/*游戏结束*/

       void GameWin(void);/*显示胜利*/

       int MineStatistics(int,int);/*统计每个格子周围的雷数*/

       int ShowWhite(int,int);/*显示无雷区的空白部分*/

       void GamePlay(void);/*游戏过程*/

       void Close(void);/*图形关闭*/

       void main(void)

       {

        Init();

        Control();

        Close();

       }

       void Init(void)/*图形开始*/

       {

        int gd=DETECT,gm;

        initgraph(&gd,&gm,"c:\\tc");

       }

       void Close(void)/*图形关闭*/

       {

        closegraph();

       }

       void MouseOn(void)/*鼠标光标显示*/

       {

        _AX=0x01;

        geninterrupt(0x33);

       }

       void MouseOff(void)/*鼠标光标隐藏*/

       {

        _AX=0x02;

        geninterrupt(0x33);

       }

       void MouseSetXY(int x,int y)/*设置当前位置*/

       {

        _CX=x;

        _DX=y;

        _AX=0x04;

        geninterrupt(0x33);

       }

       int LeftPress(void)/*鼠标左键按下*/

       {

        _AX=0x03;

        geninterrupt(0x33);

        return(_BX&1);

       }

       int RightPress(void)/*鼠标右键按下*/

       {

        _AX=0x03;

        geninterrupt(0x33);

        return(_BX&2);

       }

       void MouseGetXY(void)/*得到当前位置*/

       {

        _AX=0x03;

        geninterrupt(0x33);

        MouseX=_CX;

        MouseY=_DX;

       }

       void Control(void)/*游戏开始,重新,关闭*/

       {

        int gameFLAG=1;/*游戏失败后判断是否重新开始的标志*/

        while(1)

        {

        if(gameFLAG)/*游戏失败后没判断出重新开始或者退出游戏的话就继续判断*/

        {

        GameBegain(); /*游戏初始画面*/

        GamePlay();/*具体游戏*/

        if(gameAGAIN==1)/*游戏中重新开始*/

        {

        gameAGAIN=0;

        continue;

        }

        }

        MouseOn();

        gameFLAG=0;

        if(LeftPress())/*判断是否重新开始*/

        {

        MouseGetXY();

        if(MouseX>280&&MouseX<300&&MouseY>65&&MouseY<85)

        {

        gameFLAG=1;

        continue;

        }

        }

        if(kbhit())/*判断是否按键退出*/

        break;

        }

        MouseOff();

       }

       void DrawSmile(void)/*画笑脸*/

       {

        setfillstyle(SOLID_FILL,YELLOW);

        fillellipse(290,75,10,10);

        setcolor(YELLOW);

        setfillstyle(SOLID_FILL,BLACK);/*眼睛*/

        fillellipse(285,75,2,2);

        fillellipse(295,75,2,2);

        setcolor(BLACK);/*嘴巴*/

        bar(287,80,293,81);

       }

       void DrawRedflag(int i,int j)/*显示红旗*/

       {

        setcolor(7);

        setfillstyle(SOLID_FILL,RED);

        bar(198+j*20,95+i*20,198+j*20+5,95+i*20+5);

        setcolor(BLACK);

        line(198+j*20,95+i*20,198+j*20,95+i*20+10);

       }

       void DrawEmpty(int i,int j,int mode,int color)/*两种空格子的显示*/

       {

        setcolor(color);

        setfillstyle(SOLID_FILL,color);

        if(mode==0)/*没有单击过的大格子*/

        bar(200+j*20-8,100+i*20-8,200+j*20+8,100+i*20+8);

        else

        if(mode==1)/*单击过后显示空白的小格子*/

        bar(200+j*20-7,100+i*20-7,200+j*20+7,100+i*20+7);

       }

       void GameBegain(void)/*游戏开始画面*/

       {

        int i,j;

        cleardevice();

        if(gamePLAY!=1)

        {

        MouseSetXY(290,70); /*鼠标一开始的位置,并作为它的初始坐标*/

        MouseX=290;

        MouseY=70;

        }

        gamePLAY=1;/*下次按重新开始的话鼠标不重新初始化*/

        mineNUM=0;

        setfillstyle(SOLID_FILL,7);

        bar(190,60,390,290);

        for(i=0;i<10;i++)/*画格子*/

        for(j=0;j<10;j++)

        DrawEmpty(i,j,0,8);

        setcolor(7);

        DrawSmile();/*画脸*/

        randomize();__page_break__

        for(i=0;i<10;i++)/*100个格子随机赋值有没有地雷*/

        for(j=0;j<10;j++)

        {

        Mine[i][j].num=random(8);/*如果随机数的结果是1表示这个格子有地雷*/

        if(Mine[i][j].num==1)

        mineNUM++;/*现有雷数加1*/

        else

        Mine[i][j].num=2;

        Mine[i][j].flag=0;/*表示没红旗标志*/

        }

        sprintf(randmineNUM,"%d",mineNUM); /*显示这次总共有多少雷数*/

        setcolor(1);

        settextstyle(0,0,2);

        outtextxy(210,70,randmineNUM);

        mineNUM=100-mineNUM;/*变量取空白格数量*/

        MouseOn();

       }

       void GameOver(void)/*游戏结束画面*/

       {

        int i,j;

        setcolor(0);

        for(i=0;i<10;i++)

        for(j=0;j<10;j++)

        if(Mine[i][j].num==1)/*显示所有的地雷*/

        {

        DrawEmpty(i,j,0,RED);

        setfillstyle(SOLID_FILL,BLACK);

        fillellipse(200+j*20,100+i*20,7,7);

        }

       }

       void GameWin(void)/*显示胜利*/

       {

        setcolor(11);

        settextstyle(0,0,2);

        outtextxy(230,30,"YOU WIN!");

       }

       int MineStatistics(int i,int j)/*统计每个格子周围的雷数*/

       {

        int nNUM=0;

        if(i==0&&j==0)/*左上角格子的统计*/

        {

        if(Mine[0][1].num==1)

        nNUM++;

        if(Mine[1][0].num==1)

        nNUM++;

        if(Mine[1][1].num==1)

        nNUM++;

        }

        else

        if(i==0&&j==9)/*右上角格子的统计*/

        {

        if(Mine[0][8].num==1)

        nNUM++;

        if(Mine[1][9].num==1)

        nNUM++;

        if(Mine[1][8].num==1)

        nNUM++;

        }

        else

        if(i==9&&j==0)/*左下角格子的统计*/

        {

        if(Mine[8][0].num==1)

        nNUM++;

        if(Mine[9][1].num==1)

        nNUM++;

        if(Mine[8][1].num==1)

        nNUM++;

        }

        else

        if(i==9&&j==9)/*右下角格子的统计*/

        {

        if(Mine[9][8].num==1)

        nNUM++;

        if(Mine[8][9].num==1)

        nNUM++;

        if(Mine[8][8].num==1)

        nNUM++;

        }

        else if(j==0)/*左边第一列格子的统计*/

        {

        if(Mine[i][j+1].num==1)

        nNUM++;

        if(Mine[i+1][j].num==1)

        nNUM++;

        if(Mine[i-1][j].num==1)

        nNUM++;

        if(Mine[i-1][j+1].num==1)

        nNUM++;

        if(Mine[i+1][j+1].num==1)

        nNUM++;

        }

        else if(j==9)/*右边第一列格子的统计*/

        {

        if(Mine[i][j-1].num==1)

        nNUM++;

        if(Mine[i+1][j].num==1)

        nNUM++;

        if(Mine[i-1][j].num==1)

        nNUM++;

        if(Mine[i-1][j-1].num==1)

        nNUM++;

        if(Mine[i+1][j-1].num==1)

        nNUM++;

        }

        else if(i==0)/*第一行格子的统计*/

        {

        if(Mine[i+1][j].num==1)

        nNUM++;

        if(Mine[i][j-1].num==1)

        nNUM++;

        if(Mine[i][j+1].num==1)

        nNUM++;

        if(Mine[i+1][j-1].num==1)

        nNUM++;

        if(Mine[i+1][j+1].num==1)

        nNUM++;

        }

        else if(i==9)/*最后一行格子的统计*/

        {

        if(Mine[i-1][j].num==1)

        nNUM++;

        if(Mine[i][j-1].num==1)

        nNUM++;

        if(Mine[i][j+1].num==1)

        nNUM++;

        if(Mine[i-1][j-1].num==1)

        nNUM++;

        if(Mine[i-1][j+1].num==1)

        nNUM++;

        }

        else/*普通格子的统计*/

        {

        if(Mine[i-1][j].num==1)

        nNUM++;

        if(Mine[i-1][j+1].num==1)

        nNUM++;

        if(Mine[i][j+1].num==1)

        nNUM++;

        if(Mine[i+1][j+1].num==1)

        nNUM++;

        if(Mine[i+1][j].num==1)

        nNUM++;

        if(Mine[i+1][j-1].num==1)

        nNUM++;

        if(Mine[i][j-1].num==1)

        nNUM++;

        if(Mine[i-1][j-1].num==1)

        nNUM++;

        }__page_break__

        return(nNUM);/*把格子周围一共有多少雷数的统计结果返回*/

       }

       int ShowWhite(int i,int j)/*显示无雷区的空白部分*/

       {

        if(Mine[i][j].flag==1||Mine[i][j].num==0)/*如果有红旗或该格处理过就不对该格进行任何判断*/

        return;

        mineNUM--;/*显示过数字或者空格的格子就表示多处理了一个格子,当所有格子都处理过了表示胜利*/

        if(Mine[i][j].roundnum==0&&Mine[i][j].num!=1)/*显示空格*/

        {

        DrawEmpty(i,j,1,7);

        Mine[i][j].num=0;

        }

        else

        if(Mine[i][j].roundnum!=0)/*输出雷数*/

        {

        DrawEmpty(i,j,0,8);

        sprintf(randmineNUM,"%d",Mine[i][j].roundnum);

        setcolor(RED);

        outtextxy(195+j*20,95+i*20,randmineNUM);

        Mine[i][j].num=0;/*已经输出雷数的格子用0表示已经用过这个格子*/

        return ;

        }

       /*8个方向递归显示所有的空白格子*/

        if(i!=0&&Mine[i-1][j].num!=1)

        ShowWhite(i-1,j);

        if(i!=0&&j!=9&&Mine[i-1][j+1].num!=1)

        ShowWhite(i-1,j+1);

        if(j!=9&&Mine[i][j+1].num!=1)

        ShowWhite(i,j+1);

        if(j!=9&&i!=9&&Mine[i+1][j+1].num!=1)

        ShowWhite(i+1,j+1);

        if(i!=9&&Mine[i+1][j].num!=1)

        ShowWhite(i+1,j);

        if(i!=9&&j!=0&&Mine[i+1][j-1].num!=1)

        ShowWhite(i+1,j-1);

        if(j!=0&&Mine[i][j-1].num!=1)

        ShowWhite(i,j-1);

        if(i!=0&&j!=0&&Mine[i-1][j-1].num!=1)

        ShowWhite(i-1,j-1);

       }

       void GamePlay(void)/*游戏过程*/

       {

        int i,j,Num;/*Num用来接收统计函数返回一个格子周围有多少地雷*/

        for(i=0;i<10;i++)

        for(j=0;j<10;j++)

        Mine[i][j].roundnum=MineStatistics(i,j);/*统计每个格子周围有多少地雷*/

        while(!kbhit())

        {

        if(LeftPress())/*鼠标左键盘按下*/

        {

        MouseGetXY();

        if(MouseX>280&&MouseX<300&&MouseY>65&&MouseY<85)/*重新来*/

        {

        MouseOff();

        gameAGAIN=1;

        break;

        }

        if(MouseX>190&&MouseX<390&&MouseY>90&&MouseY<290)/*当前鼠标位置在格子范围内*/

        {

        j=(MouseX-190)/20;/*x坐标*/

        i=(MouseY-90)/20;/*y坐标*/

        if(Mine[i][j].flag==1)/*如果格子有红旗则左键无效*/

        continue;

        if(Mine[i][j].num!=0)/*如果格子没有处理过*/

        {

        if(Mine[i][j].num==1)/*鼠标按下的格子是地雷*/

        {

        MouseOff();

        GameOver();/*游戏失败*/

        break;

        }

        else/*鼠标按下的格子不是地雷*/

        {

        MouseOff();

        Num=MineStatistics(i,j);

        if(Num==0)/*周围没地雷就用递归算法来显示空白格子*/

        ShowWhite(i,j);

        else/*按下格子周围有地雷*/

        {

        sprintf(randmineNUM,"%d",Num);/*输出当前格子周围的雷数*/

        setcolor(RED);

        outtextxy(195+j*20,95+i*20,randmineNUM);

        mineNUM--;

        }

        MouseOn();

        Mine[i][j].num=0;/*点过的格子周围雷数的数字变为0表示这个格子已经用过*/

        if(mineNUM<1)/*胜利了*/

        {

        GameWin();

        break;

        }

        }

        }

        }

        }

        if(RightPress())/*鼠标右键键盘按下*/

        {

        MouseGetXY();

        if(MouseX>190&&MouseX<390&&MouseY>90&&MouseY<290)/*当前鼠标位置在格子范围内*/

        {

        j=(MouseX-190)/20;/*x坐标*/

        i=(MouseY-90)/20;/*y坐标*/

        MouseOff();

        if(Mine[i][j].flag==0&&Mine[i][j].num!=0)/*本来没红旗现在显示红旗*/

        {

        DrawRedflag(i,j);

        Mine[i][j].flag=1;

        }

        else

        if(Mine[i][j].flag==1)/*有红旗标志再按右键就红旗消失*/

        {

        DrawEmpty(i,j,0,8);

        Mine[i][j].flag=0;

        }

        }

        MouseOn();

        sleep(1);

        }

        }

       }

VC++如何获取机器码?硬盘序列号、CPU编号、BIOS编号等~

       游戏描述如下:

       1. 贪吃蛇可以自动直线前进,或者玩家可以通过方向键操纵贪吃蛇上下左右前进,每次前进一格。

       2. 贪吃蛇在规定的区域内活动,当:

       ①贪吃蛇触碰到墙壁时;

       ②贪吃蛇的蛇头触碰到蛇身或者蛇尾时;

       ③玩家的键盘输入不是方向键时;

       命令行显示“Game Over!”并且退出游戏。

       3. 贪吃蛇活动的区域内每次随机产生一颗“豆豆”,当贪吃蛇吃到“豆豆”后蛇身增长一格,自动前进时间缩

       短100ms(默认是1000ms,且不能少于100ms)。贪吃蛇长度每为8的倍数Improve a Level。

       C++代码如下:

#include?<bios.h>?

       #include?<conio.h>?

       #include?<dos.h>?

       #include?<graphics.h>?

       #include?<stdlib.h>?

       #include?<time.h>?

       using?namespace?std;?

       inline?void?display(char?gsDomain[][22],?int?level,?int?moveSpeed)?

       {?

       system("cls");?//清屏?

       cout?<<?endl?<<?endl;?

       for?(int?i?=?0;?i?<?22;?i++)?

       {?

       cout?<<?"\t";?

       for?(int?j?=?0;?j?<?22;?j++)?

       cout?<<?gsDomain[i][j]?<<?"?";?

       if?(i?==?0)?

       {?

       cout?<<?"\tLevel:"?<<?level;?

       }?

       else?if?(i?==?3)?

       {?

       cout?<<?"\t自动前进时间";?

       }?

       else?if?(i?==?5)?

       {?

       cout?<<?"\t间隔:"?<<?moveSpeed?<<?"?ms";?

       }?

       cout?<<?endl;?

       }?

       }?

       int?main()?

       {?

       char?gsDomain[22][22];?//贪吃蛇活动区域(包括墙壁)?

       //初始化贪吃蛇活动区域(不包括墙壁)?

       for?(int?i?=?1;?i?<=?21;?i++)?

       {?

       for?(int?j?=?1;?j?<=?21;?j++)?

       gsDomain[i][j]?=?'?';?

       }?

       //初始化贪吃蛇活动区域的上下墙壁?

       for?(int?i?=?0;?i?<?22;?i++)?

       gsDomain[0][i]?=?gsDomain[21][i]?=?'-';?

       //初始化贪吃蛇活动区域的左右墙壁?

       for?(int?i?=?1;?i?<?21;?i++)?

       gsDomain[i][0]?=?gsDomain[i][21]?=?'|';?

       //初始化蛇身?

       for?(int?i?=?1;?i?<=?3;?i++)?

       gsDomain[1][i]?=?'*';?

       //初始化蛇头?

       gsDomain[1][4]?=?'#';?

       int?snake[2][100];?//记录贪吃蛇每次出现的位置的坐标?

       for?(int?i?=?0;?i?<?4;?i++)?

       {?

       snake[0][i]?=?1;?//记录贪吃蛇所在位置的x坐标?

       snake[1][i]?=?i?+?1;?//记录贪吃蛇所在位置的y坐标?

       }?

       int?head?=?3,?tail?=?0,?length?=?4;?

       int?beanX,?beanY;?//豆豆出现的位置?

       srand(time(0));?

       do

       {?

       beanX?=?rand()?%?20?+?1;?

       beanY?=?rand()?%?20?+?1;?

       }?while?(gsDomain[beanX][beanY]?!=?'?');?

       gsDomain[beanX][beanY]?=?'*';?//豆豆?

       cout?<<?"\n\n\t\t贪吃蛇游戏即将开始!\n";?

       long?start;?

       int?level?=?1,?moveSpeed?=?1000;?

       for?(int?i?=?3;?i?>=?0;?i--)?

       {?

       start?=?clock();?

       while?(clock()?-?start?<=?1000){}?

       system("cls");?

       if?(i)?

       {?

       cout?<<?"\n\n\t\t进入游戏倒计时:"?<<?i?<<?endl;?

       }?

       else

       display(gsDomain,?level,?moveSpeed);?

       }?

       char?direction?=?77;?//贪吃蛇默认自动向右直线前进?

       while?(true)?

       {?

       bool?timeFlag?=?true;?

       int?x,?y;?

       start?=?clock();?

       //若时间超过自动前进时间或者键盘上有键按下则终止循环?

       while?((timeFlag?=?(clock()?-?start?<=?moveSpeed))?&&?!kbhit()){}?

       if?(timeFlag)?

       {?

       //键盘上有键按下时读取键盘输入?

       getch();?

       direction?=?getch();?

       }?

       switch?(direction)?

       {?

       //向上?

       case?72:?x?=?snake[0][head]?-?1,?y?=?snake[1][head];?

       break;?

       //向下?

       case?80:?x?=?snake[0][head]?+?1,?y?=?snake[1][head];?

       break;?

       //向左?

       case?75:?x?=?snake[0][head],?y?=?snake[1][head]?-?1;?

       break;?

       //向右?

       case?77:?x?=?snake[0][head],?y?=?snake[1][head]?+?1;?

       break;?

       default:?cout?<<?"\tGame?Over!\n";?

       return?0;?

       }?

       if?(x?==?0?||?x?==?21?||?y?==?0?||?y?==?21)?

       {?

       //贪吃蛇触碰到墙壁?

       cout?<<?"\tGame?Over!\n";?

       return?0;?

       }?

       if?(gsDomain[x][y]?!=?'?'?&&?!(x?==?beanX?&&?y?==?beanY))?

       {?

       //贪吃蛇的蛇头触碰到蛇身或者蛇尾?

       cout?<<?"\tGame?Over!\n";?

       return?0;?

       }?

       if?(x?==?beanX?&&?y?==?beanY)?

       {?

       //吃豆豆?

       length++;?//长度加1?

       if?(length?>=?8)?

       {?

       //游戏升级处理?

       length?-=?8;?

       level++;?

       if?(moveSpeed?>?100)?

       moveSpeed?-=?100;?

       }?

       gsDomain[snake[0][head]][snake[1][head]]?=?'*';?

       gsDomain[x][y]?=?'#';?

       head?=?(head?+?1)?%?100;?

       snake[0][head]?=?x;?

       snake[1][head]?=?y;?

       do

       {?

       beanX?=?rand()?%?20?+?1;?

       beanY?=?rand()?%?20?+?1;?

       }?while?(gsDomain[beanX][beanY]?!=?'?');?

       gsDomain[beanX][beanY]?=?'*';?

       display(gsDomain,?level,?moveSpeed);?//屏幕上显示?

       }?

       else

       {?

       //不吃豆豆?

       gsDomain[snake[0][tail]][snake[1][tail]]?=?'?';?//蛇尾前移一格?

       tail?=?(tail?+?1)?%?100;?

       gsDomain[snake[0][head]][snake[1][head]]?=?'*';?

       head?=?(head?+?1)?%?100;?

       snake[0][head]?=?x;?

       snake[1][head]?=?y;?

       gsDomain[x][y]?=?'#';?//蛇头前移一格?

       display(gsDomain,?level,?moveSpeed);?//屏幕上显示?

       }?

       }?

       return?0;?

       }

查找电脑配置的代码是什么

       可以试试使用WMI(在msdn上有详细的信息):

       硬盘序列号: 用Win32_PhysicalMedia class.

       CPU编号: 用Win32_Processor class.

       BIOS编号: 用Win32_BIOS class.

       下面例子取得硬盘的序列号,其他的用法也类似(msdn上的例子,把Win32_OperatingSystem改成了Win32_PhysicalMedia):

       #define _WIN32_DCOM

       #include <iostream>

       using namespace std;

       #include <comdef.h>

       #include <Wbemidl.h>

       # pragma comment(lib, "wbemuuid.lib")

       int main(int argc, char **argv)

       {

        HRESULT hres;

        // Step 1: --------------------------------------------------

        // Initialize COM. ------------------------------------------

        hres = CoInitializeEx(0, COINIT_MULTITHREADED);

        if (FAILED(hres))

        {

        cout << "Failed to initialize COM library. Error code = 0x"

        << hex << hres << endl;

        return 1; // Program has failed.

        }

        // Step 2: --------------------------------------------------

        // Set general COM security levels --------------------------

        // Note: If you are using Windows 2000, you need to specify -

        // the default authentication credentials for a user by using

        // a SOLE_AUTHENTICATION_LIST structure in the pAuthList ----

        // parameter of CoInitializeSecurity ------------------------

        hres = CoInitializeSecurity(

        NULL,

        -1, // COM authentication

        NULL, // Authentication services

        NULL, // Reserved

        RPC_C_AUTHN_LEVEL_DEFAULT, // Default authentication

        RPC_C_IMP_LEVEL_IMPERSONATE, // Default Impersonation

        NULL, // Authentication info

        EOAC_NONE, // Additional capabilities

        NULL // Reserved

        );

       if (FAILED(hres))

        {

        cout << "Failed to initialize security. Error code = 0x"

        << hex << hres << endl;

        CoUninitialize();

        return 1; // Program has failed.

        }

        // Step 3: ---------------------------------------------------

        // Obtain the initial locator to WMI -------------------------

        IWbemLocator *pLoc = NULL;

        hres = CoCreateInstance(

        CLSID_WbemLocator,

        0,

        CLSCTX_INPROC_SERVER,

        IID_IWbemLocator, (LPVOID *) &pLoc);

        if (FAILED(hres))

        {

        cout << "Failed to create IWbemLocator object."

        << " Err code = 0x"

        << hex << hres << endl;

        CoUninitialize();

        return 1; // Program has failed.

        }

        // Step 4: -----------------------------------------------------

        // Connect to WMI through the IWbemLocator::ConnectServer method

        IWbemServices *pSvc = NULL;

        // Connect to the root\cimv2 namespace with

        // the current user and obtain pointer pSvc

        // to make IWbemServices calls.

        hres = pLoc->ConnectServer(

        _bstr_t(L"ROOT\\CIMV2"), // Object path of WMI namespace

        NULL, // User name. NULL = current user

        NULL, // User password. NULL = current

        0, // Locale. NULL indicates current

        NULL, // Security flags.

        0, // Authority (e.g. Kerberos)

        0, // Context object

        &pSvc // pointer to IWbemServices proxy

        );

        if (FAILED(hres))

        {

        cout << "Could not connect. Error code = 0x"

        << hex << hres << endl;

        pLoc->Release();

        CoUninitialize();

        return 1; // Program has failed.

        }

        cout << "Connected to ROOT\\CIMV2 WMI namespace" << endl;

       // Step 5: --------------------------------------------------

        // Set security levels on the proxy -------------------------

        hres = CoSetProxyBlanket(

        pSvc, // Indicates the proxy to set

        RPC_C_AUTHN_WINNT, // RPC_C_AUTHN_xxx

        RPC_C_AUTHZ_NONE, // RPC_C_AUTHZ_xxx

        NULL, // Server principal name

        RPC_C_AUTHN_LEVEL_CALL, // RPC_C_AUTHN_LEVEL_xxx

        RPC_C_IMP_LEVEL_IMPERSONATE, // RPC_C_IMP_LEVEL_xxx

        NULL, // client identity

        EOAC_NONE // proxy capabilities

        );

        if (FAILED(hres))

        {

        cout << "Could not set proxy blanket. Error code = 0x"

        << hex << hres << endl;

        pSvc->Release();

        pLoc->Release();

        CoUninitialize();

        return 1; // Program has failed.

        }

        // Step 6: --------------------------------------------------

        // Use the IWbemServices pointer to make requests of WMI ----

        // For example, get the name of the operating system

        IEnumWbemClassObject* pEnumerator = NULL;

        hres = pSvc->ExecQuery(

        bstr_t("WQL"),

        bstr_t("SELECT * FROM Win32_PhysicalMedia"),

        WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,

        NULL,

        &pEnumerator);

        if (FAILED(hres))

        {

        cout << "Query for physical media failed."

        << " Error code = 0x"

        << hex << hres << endl;

        pSvc->Release();

        pLoc->Release();

        CoUninitialize();

        return 1; // Program has failed.

        }

        // Step 7: -------------------------------------------------

        // Get the data from the query in step 6 -------------------

        IWbemClassObject *pclsObj;

        ULONG uReturn = 0;

        while (pEnumerator)

        {

        HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1,

        &pclsObj, &uReturn);

        if(0 == uReturn)

        {

        break;

        }

        VARIANT vtProp;

        // Get the value of the Name property

        hr = pclsObj->Get(L"SerialNumber", 0, &vtProp, 0, 0);

        wcout << "Serial Number : " << vtProp.bstrVal << endl;

        VariantClear(&vtProp);

        }

        // Cleanup

        // ========

        pSvc->Release();

        pLoc->Release();

        pEnumerator->Release();

        pclsObj->Release();

        CoUninitialize();

        return 0; // Program successfully completed.

       }

计算机代码有哪些?

       oppo串号查询手机配置?

       oppo手机指令代码大全

       完整指令

       *#06#可查询手机串号

       *#1234#可查询硬件代码和手机版

       *#6776#可查询手机版本,出厂信息等

       *#*#4636#*#*可查询电池使用情况和温度,更改网络类型

       *#800#断言开关(别乱摁,否则无限重启)

       *#801#工程模式开关

       *#802#GPS扫描测试

       *#803#WLAN设置

       *#804#自动搜网

       *#805#蓝牙测试

       *#806#自动老化测试

       *#807#自动测试

       *#808#手动测试

       *#809#回音测试

       *#811#OTA开关(仅正式版可用)

       *#8778#总清除(重置手机)

       *#888#查看固件版本

       *#99#打开/关闭屏幕常亮

       *#900#蓝牙开启

       *#901#蓝牙关闭

       电脑开机出现硬件信息怎么办?

       电脑开机出现硬件信息解决方法:

       1.首先,将pe启动盘插在电脑上,然后在开机的时候按下键盘上的热键进入pe系统,然后选择第一项回车进入。

       2.接着,进入到pe系统之后,在桌面上找到分区工具,双击图标进入。

       3.之后,在软件的菜单栏上选择硬盘。

       4.在弹出的下拉菜单中点击重建主引导记录选项。

       5、最后,出现对话框选择是,然后工具就会开始修复系统的主引导记录,修复完毕之后电脑开机就不会出现硬件信息。

       什么软件可以查看应用代码?

       android代码阅读器app这是一款能快速识别源代码的手机应用,通过安卓代码阅读器app你可轻松查询文件源代码,浏览多种主流编程语言等。

       安卓代码阅读器app是一款简单的源码阅读器,支持语法高亮显示以及多种主题风格显示,能自动识别源码文件。android代码阅读器,轻松阅读源代码,界面风格多样自由选择,工程便捷管理。

       开机自检时如何识别主机主要硬件(主板芯片组+内存容量+硬盘品牌、容量,显卡型号、显存容量%2?

       一、开机自检中查看硬件配置机器组装结束后即使不装操作系统也可以进行加电测试,在开机自检的画面中就隐藏着硬件配置的简单介绍哟(由于开机画面一闪而过,要想看清楚的话,记得及时伸手按住“PAUSE”键)。1.显卡信息开机自检时首先检查的硬件就是显卡,因此启动机器以后在屏幕左上角出现的几行文字就是有显卡的“个人资料”介绍。四行文字中,第一行“GeForce4MX440?”标明了显卡的显示核心为GeForce4MX440、支持AGP8X技术;第二行“Version?”标明了显卡BIOS的版本,我们可以通过更新显卡BIOS版本“榨取”显卡性能,当然更新后这一行文字也会随之发生变化;第三行“Copyright(C)?”则为厂商的版权信息,标示了显示芯片制造厂商及厂商版权年限;第四行“64.0MBRAM”则标明了显卡显存容量。2.CPU及硬盘、内存、光驱信息显示完显卡的基本信息之后,紧接着出现的第二个自检画面则显示了更多的硬件信息,像CPU型号、频率、内存容量、硬盘及光驱信息等都会出现在此画面中。该画面最上面两行文字标示了主板BIOS版本及BIOS制造商的版权信息;紧接着的文字一看就明白啦,当然是主板芯片组喽;其下几行文字则标明了CPU的频率及内存容量、速度。呵呵,我这个CPU和内存是超频使用的,所以频率可不太正规哟;下面四行“IDE?”则标明了连接在IDE主从接口上的设备,包括硬盘型号及光驱型号等等。3.主板信息在第二个自检画面的最下方还会出现一行关于主板的信息,前面的日期显示的是当前主板的BIOS更新日期,后面的符号则是该主板所采用的代码,根据代码我们可以了解主板的芯片组型号和生产厂商。以往老主板的自检画面中最下方文字的中间标明的是主板芯片组,这一块板子则将其提到了自检画面的上方。机器启动之后按“DEL”键进入BIOS设置页面,在基本信息中同样也可以看到机器的硬件信息,与开机画面显示的没有区别。二、利用设备管理器查看硬件配置进入操作系统之后,在安装硬件驱动程序的情况下还可以利用设备管理器与DirectX诊断工具来查看硬件配置。下面看看如何利用设备管理器查看硬件信息。进入桌面,鼠标右击“我的电脑”图标,在出现的菜单中选择“属性”,打开“系统属性”窗口,点击“硬件--设备管理器”,在“设备管理器”中显示了机器配置的所有硬件设备。从上往下依次排列着光驱、磁盘控制器芯片、CPU、磁盘驱动器、显示器、键盘、声音及视频等信息,最下方则为显示卡。想要了解哪一种硬件的信息,只要点击其前方的“+”将其下方的内容展开即可。利用设备管理器除了可以看到常规硬件信息之外,还可以进一步了解主板芯片、声卡及硬盘工作模式等情况。例如想要查看硬盘的工作模式,只要双击相应的IDE通道即可弹出属性窗口,在属性窗口中可轻检看到硬盘的设备类型及传送模式。这些都是开机画面所不能提供的。需要注意的是在WindowsXp之前的操作系统中所提供的设备管理器是无法用来查看CPU工作频率的,好在我们还有DirectX诊断工具。三、利用DirectX诊断工具查看硬件配置DirectX诊断工具可以帮助我们对硬件工作情况作出测试、诊断并进行修改,当然我们也可以利用它来查看机器的硬件配置。运行“系统信息”窗口,找到“工具--DirectX诊断工具”(或者进入安装盘符中Windows目录下的System32目录中运行Dxdiag.exe),在窗口中可以方便地查看硬件信息。1.查看基本信息在“DirectX诊断工具”窗口中点击“系统”选项卡,当前日期、计算机名称、操作系统、系统制造商及BIOS版本、CPU处理器频率及及内存容量一目了然。注意喽,虽然我将Celeron2.0MHz超频至2.40MHz使用,但是DirectX却不认这个帐,依然显示的是未超频的原始频率。看来没有AIDA32,我们同样也可以识别奸商是否将超频的CPU卖给我们!!2.查看显卡信息在“DirectX诊断工具”窗口中点击“显示”选项卡,在这里我们可以看到显卡的制造商、显示芯片类型、显存容量、显卡驱动版本、监视器等常规信息。3.查看音频信息音频设备往往为人所忽视,但缺了它又不行,单击“声音”选项卡,对其做一番了解吧.同样在出现的窗口中能看到设备的名称、制造商及其驱动程序等等极为详细的资料。不同的是我们还可以点击右下角的“测试DirectSound(T)”对声卡进行一下简单的测试。

       怎样从识别码查车辆配置?

       1、首先我们要登录手机微信,在发现里点击微信小程序;

       2、接着进入微信小程序后,在搜索栏里输入“车架号”后,就会显示出多个车架号信息查询的小程序了,如下图所示;

       3、这时候我们要看清楚:有的查询车架号信息小程序,需要选择品牌型号,对一些车辆品牌型号不支持查询,大多数还是查询的到的;

       4、然后点击车架号VIN进入小程序后,首先按照步骤要求输入17位车架号。这时候要通过拍照上传行驶证上的车辆识别代号,因为手写输入会出现格式有误,造成查询失败,上传后点击查询,如下图所示;

       5、最后可以在下面查询出的结果,对照车辆配置型号即可。

       计算机程序包括那些

        程序包括很多种!可执行程序.exe是最熟悉的

        只要是可以双击运行的都叫程序!

        病毒也是程序!

        电脑最基本代码有哪些

        是诊断卡代码吧?主板检测卡常见代码检修

       一、主板检测卡各指示灯说明

        BIOS灯:为BIOS运行灯、正常工作时应不停闪动

        CLK灯:为时钟灯、正常为常亮

        OSC灯:为基准时钟灯、正常为常亮

        RESET灯:为复位灯、正常为开机瞬间闪一下,然后熄灭

        RUN灯:为运行灯、工作时应不停闪动

        +12V、-12V、+5V、+3.3V灯正常为常亮

        二、常见代码检修

        1、00、CO、CF、FF或D1

        测BIOS芯片CS有无片选:

        (1)、有片选:换BIOS、测BIOS的OE是否有效、测PCI的AD线、 测 CPU复位有无1.5V--0V跳变

        (2)、无片选:测PCI的FRAME、测CPU的DBSY ADS#,如不正常 则北桥坏、若帧周期信号不正常则南桥坏

        2、C0

        CPU插槽脏、针脚坏、接触不好

        换电源、换CPU、换转接卡有时可解决问题

        刷BIOS、检查BIOS座

        I/O坏、北桥虚焊、南弱桥坏

        PCB断线、板上粘有导电物

        3、C1、C3、C6、A7或E1

        内存接触不良(用镊子划内存槽)

        测内存工作电压SDRAM (3.3V),DDR(2.5和1.25V)

        测时钟(CLK0~CLK3)

        CPU旁排阻是否损坏

        测CPU地址线和数据线

        测DDR的负载排阻和数据排阻

        北桥坏

        4、C1~05循环跳变

        测32.768MHZ是否正常

        BIOS损坏

        I/O或南桥损坏

        5、C1、C3、C6

        刷BIOS、检查BIOS座

        换电源、换CPU,换转接卡有时可解决问题

        PCB断线、板上粘有导电物

        换内存条,PC100、PC133,或速度更快更稳定的内存

        换内存插槽,有些主板的内存条插槽要先插最靠里面或最靠外面的槽才可工作

        目测内存槽是否有短路等机械类损坏现象

        没内存的CLK0、CLK1、CLK2、CLK3、CLK4,内存主供电

        打阻值检查是否有断路现象

        换I/O芯片、北桥虚焊或北桥坏

        6、循环显示C1-C3或C1-C5

        刷BIOS

        换I/O有时可解决问题、检查I/O外围电路

        PCB断线、板上粘有导电物

        换电源、换CPU、换内存

        南桥坏

        7、其它代码

        刷BIOS

        换电源、CPU、内存

        检查I/O外围电路、换I/O芯片

        PCB断线、板上粘有导电物、南桥坏

        8、bO代码

        测内存的数据负载电压1.25V、2.5V(DDR)

        清CMOS

        测北桥供电或北桥坏

        9、25代码

        测AGP核心供电4X(1.5V)、8X(0.8V)、2X(3.3V)

        北桥供电、北桥坏

        10、走od后不亮

        测PCI插槽之间电阻和排阻

        外频、倍频跳线

        11、若显示Ob显示器仍不亮

        换显卡,有时主板与显卡不兼容

        换电源、换CPU、换内存

        换显卡插槽、PCB断线、板上......

        电脑的常用运行代码有哪些?

        说太多了你用不到,说几个最经常用的给你

        msconfig这个里边可以设置开机自动启动的项目,也可以关闭系统服务,经常用到

        regedit注册表编辑器,这个对高级用户来说也经常用到,初学也用

        cmd打开MS-DOS的命令,进阶必须用他

        dxdiag查看directX的,里边有系统各组件的信息,比如显卡,声卡,系统版本等

        ping 网站域名 这个是查看你和某个网站或者ip的连接的,主要看掉线没

        gpedit.msc 组策略,对系统有很多设置需要在里边修改,比如禁用什么组件或者功能等,其他的就不用管先,学好这几个再说

        计算机常用的信息编码有哪几种

        在计算机硬件中,编码(coding)是在一个主题或单元上为数据存储,管理和分析的目的而转换信息为编码值(典型的如数字)的过程。在软件中,编码意味着逻辑地使用一个特定的语言如C或C++来执行一个程序字符编码:使用二进制数对字符进行的编码称字符编码。

        ASCII码:美国标准信息交换码的英文简称,是计算机中用二进制表示字母、数字、符号的一种编码标准。ASCII码有两种,使用7位二进制数的称为基本ASCII码;使用8位二进制数的称为扩展ASCII码。

        汉字编码:用于表示汉字字符的二进制字符编码。汉字编码根据其用途不同可分为输入码、内部码、字型码和地址码等。

        1基本信息

        编码单位

        最小的单元是位(bit),接着是字节(Byte),一个字节=8位,英语表示是1 byte=8 bits 。机器语言的单位Byte。1 KB=1024 Byte; 1 MB=1024 KB; 1 GB=1024 MB ; 1TB=1024 GB。

        进制

        二进制数由0和1,八进制数由0-7, 十进制数由0-9,十六进制数由0-9,A,B,C,D,E,F组成,

        上层字符

        字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。字符集是多个字符的 *** ,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB 18030字符集、Unicode字符集等。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。

        2编码分类

        1.ASCII

        ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)是基于罗马字母表的一套电脑编码系统,它主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO 646。

        包含内容:

        控制字符:回车键、退格、换行键等。

        可显示字符:英文大小写字符、 *** 数字和西文符号

        ASCII扩展字符集扩展:表格符号、计算符号、希腊字母和特殊的拉丁符号。

        第0~31号及第127号(共33个)是控制字符或通讯专用字符,如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;

        第32~126号(共94个)是字符,其中第48~57号为0~9十个 *** 数字;65~90号为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。

        注意:在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。

        2.GB2312

        GB2312又称为GB2312-80字符集,全称为《信息交换用汉字编码字符集·基本集》,由原中国国家标准总局发布,1981年5月1日实施,是中国国家标准的简体中文字符集。它所收录的汉字已经覆盖99.75%的使用频率,基本满足了汉字的计算机处理需要。在中国大陆和新加坡获广泛使用。

        GB2312收录简化汉字及一般符号、序号、数字、拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号、汉语注音字母,共 7445 个图形字符。其中包括6763个汉字......

        计算机代码是什么意思

        1.理论上的概念

        源代码是相对目标代码和可执行代码而言的。

        源代码就是用汇编语言和高级语言写出来的地代码。

        目标代码是指源代码经过编译程序产生的能被cpu直接识别二进制代码。

        可执行代码就是将目标代码连接后形成的可执行文件,当然也是二进制的。

        2.最直观的概念

        在这个网页上右键鼠标,选择查看源文件.出来一个记事本,里面的内容就是此网页的源代码.

        ===================================================

        关于两者的区别联系:

        1.从字面意义上来讲,源文件是指一个文件,指源代码的 *** .源代码则是一组具有特定意义的可以实现特定功能的字符(程序开发代码).

        2."源代码"在大多数时候等于"源文件".

        枫舞在上面说过"2.最直观的概念 在这个网页上右键鼠标,选择查看源文件.出来一个记事本,里面的内容就是此网页的源代码."这句话就体现了他们的关系,此处的源文件是指网页的源文件,而源代码就是源文件的内容,所以又可以称做网页的源代码..

        计算机有哪些编程语言?

        工业编程语言: A+ | Ada | 汇编语言| B | Brain *** | C | C++ | C++/CLI| Cg | COBOL | Eiffel | Erlang | FORTRAN | IronPython | Java | JRuby | Jython | LISP | Oberon | Objective-C| Ocaml | Pascal | Perl | Powerbuilder | Python | QBASIC | R | REXX | Ruby | Self | Smalltalk | SQL | Tcl/Tk | Visual Basic | PHP | C# | F# | J# | Visual Basic .NET

        脚本编程语言: ActionScript | JavaScript | JScript | Nuva | PostScript | VBScript | lua

        学术编程语言: APL/J | Haskell | Logo | ML | pascal|Prolog | Scheme | SAC

        其他编程语言: ALGOL | BASIC| Clipper | Forth | Modula-2/Modula-3 | MUMPS | PL/I | Simula

       好了,今天关于“bios源代码”的话题就讲到这里了。希望大家能够对“bios源代码”有更深入的认识,并从我的回答中得到一些启示。如果您有任何问题或需要进一步的信息,请随时告诉我。