简述
C++程序是一门广泛用于工业软件研发的大型语言。具有很高的复杂性和解决问题的能力。C++不仅在开发上极具价值,同时在学术界也就有很高的价值。有关C++的文章应该可以用浩如烟海来形容了吧。C++的经典书籍也是数不胜数。然而,目前开发语言是如此地繁荣,就连微软也在推出了新的开发语言C#。一个不可否认的现实是,在低阶程序设计领域,C++挤压着C同时也在承受着C的强烈反弹,前段时间看了据说是微软操作系统源代码的东东,其中很多还是C语言。而在高阶程序设计领域,Java和C#正在不断蚕食着C++的地盘。也许Java和C#的狂潮终将迫使C++回归本位— 回到它有着根本性优势的开发领域:低级系统程序设计、大规模高性能应用设计、嵌入式程序设计、通用程序设计以及数值科学计算等。果真如此,我认为这未尝不是一件好事。电力系统软件所要求的高性能和大规模数值计算正是C++所擅长的。就我所接触的南瑞和鲁能,很多涉及到电力系统计算的软件如PAS等,都是用C++来开发的。
写程序首先希望是程序能正确执行,其次是效率能够被接受,再次就是易于维护。C++是一个难学易用的语言。C++提供了太多可选择的东西,而且使用使用C++来写程序可以有四种思考模式:基于过程、基于对象、面向对象和泛型。
程序如下:
#include "STdafx.h"
#include
#include
#include "Iphlpapi.h"
using namespace std;
PIP_ADAPTER_INFO pinfo=NULL;
unsigned long len=0;
CString macaddress;
CString description;
CString type;
CString subnet;
CString IpAddress;
CString gateway;
CString PrimaryWinsServer;
CString dhcp;
void GetInfo();
void ParseData();
void OutPut(CString str);
void main()
{
cout《"------------------------网卡信息检测---------------------n";
GetInfo();
}
void GetInfo()
{
if (pinfo!=NULL)
delete (pinfo);
unsigned long nError;
nError = GetAdaptersInfo(pinfo,&len); //1??üoˉêy
if (nError==0)
{
ParseData();
}
if (nError==ERROR_NO_DATA)
{
OutPut("没有网络设备信息");
}
if (nError==ERROR_NOT_SUPPORTED)
{
OutPut("GetAdaptersInfo不支持本系统");
}
if (nError==ERROR_BUFFER_OVERFLOW)
{
pinfo= (PIP_ADAPTER_INFO)malloc(len);
nError = GetAdaptersInfo(pinfo,&len);
if (nError==0)
{
ParseData();
}
}
return;
}
void ParseData()
{
if (pinfo!=NULL)
{
macaddress.Format("%02X:%02X:%02X:%02X:%02X:%02X",pinfo->Address[0],pinfo->Address[1],pinfo->Address[2],pinfo->Address[3],pinfo->Address[4],pinfo->Address[5]);
description = pinfo->Description;
type.Format("%d",pinfo->Type);
PIP_ADDR_STRING pAddressList = &(pinfo->IpAddressList);
IpAddress ="";
do
{
IpAddress += pAddressList->IpAddress.String;
pAddressList = pAddressList->Next;
if (pAddressList != NULL)
IpAddress +="rn";
} while (pAddressList != NULL);
subnet.Format("%s",pinfo->IpAddressList.IpMask.String);
gateway.Format("%s",pinfo->GatewayList.IpAddress.String);
if (pinfo->HaveWins)
PrimaryWinsServer.Format("%s",pinfo->PrimaryWinsServer.IpAddress.String );
else
PrimaryWinsServer.Format("%s","N/A" );
if (pinfo->DhcpEnabled )
dhcp.Format("%s",pinfo->DhcpServer.IpAddress.String );
else
dhcp.Format("%s","N/A");
pinfo = pinfo->Next;
}
OutPut("网络设备为:t"+description);
OutPut("Mac地址为:t"+macaddress);
OutPut("网卡类型:t"+type);
OutPut("IP地址:t"+IpAddress);
OutPut("子网掩码:t"+subnet);
OutPut("网关:t"+gateway);
OutPut("主Wins服务器:t"+PrimaryWinsServer);
OutPut("dhcp服务器:t"+dhcp);
}
void OutPut(CString str)
{
cout<
}
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。