EnumPorts函数枚举计算端口
//---------------------------------------------------------------------------#include<windows>#include<winspool.h>#pragmahdrstop//---------------------------------------------------------------------------#pragmaargsused#include<stdio.h>intmain(intargc,char*argv[]){constLPTSTRpName=NULL;//此处为空,就是本机constDWORDLevel=2;//指定端口类型结构体,即PORT_INFO_2LPBYTEport=0;//接收端口信息结构体数组指针DWORDpcbNeeded=0;//缓冲区字节指针(必需)DWORDpcReturned=0;//返回结果PORT_INFO_*结构体缓冲区数量if(EnumPorts(NULL,Level,port,0,&pcbNeeded,&pcReturned)){return0;//同一函数,第一次执行获取所需缓冲区大小pcbNeeded}port=newBYTE[pcbNeeded];if(!EnumPorts(pName,Level,port,pcbNeeded,&pcbNeeded,&pcReturned)){return0;//同一函数,第二次执行获取端口个数pcReturned}PORT_INFO_2ArrPort[100]={0};memcpy(ArrPort,port,pcbNeeded);//取出端口信息放入数组for(inti=0;i<pcReturned;i++){printf("%s\r\n",ArrPort[i].pPortName);//返回端口名称}deleteport;getchar();return0;}//---------------------------------------------------------------------------
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。